小编sam*_*uri的帖子

如何对执行器服务中运行的代码片段进行单元测试,而不是等待Thread.sleep(时间)

如何对执行程序服务中运行的代码进行单元测试?在我的情况下,

public void test() {
    Runnable R = new Runnable() {
        @Override
        public void run() {
            executeTask1();
            executeTask2();
        }
    };

    ExecutorService executorService = Executors.newSingleThreadExecutor();
    executorService.submit(R);
}
Run Code Online (Sandbox Code Playgroud)

当我进行单元测试时,我想做一些方法执行的验证.

我正在执行器服务中执行此操作,因为它进行了一些网络操作.

在我的单元测试中,我不得不等到这个方法完成执行.有没有更好的方法可以做到这一点,而不是等待Thread.sleep(500).

单元测试代码段:

@Test
public void testingTask() {
    mTestObject.test();
    final long threadSleepTime = 10000L;
    Thread.sleep(threadSleepTime);
    verify(abc, times(2))
            .acquireClient(a, b, c);
    verify(abd, times(1)).addCallback(callback);
}
Run Code Online (Sandbox Code Playgroud)

注意:我将一个执行程序服务对象传递给此构造函数类.我想知道是否有一种好的测试方法而不是等待睡眠时间.

java unit-testing executorservice

8
推荐指数
3
解决办法
1万
查看次数

如何将终端中定义的变量读取到 bash 脚本


我是 shell 脚本的新手。我有一个非常基本的问题,关于我们如何读取终端中定义的变量作为 shell 脚本的输入。

假设我在我的终端
a=22 中定义了这个变量,
如果我这样做的echo $a话,它会在我的终端中给出 22 作为输出。

我想将此变量作为参数传递给名为 input.sh 的脚本

#!/bin/bash

echo "Enter variable name:"
read Input
echo $Input
Run Code Online (Sandbox Code Playgroud)

我将脚本运行为 ./input.sh 它弹出的消息为
Enter variable name:$a

但是在输出中我有 $a 作为输出而不是 22。我想要 22 作为输出。有没有办法做到这一点?

linux bash shell command-line-arguments

2
推荐指数
1
解决办法
1万
查看次数