如何对执行程序服务中运行的代码进行单元测试?在我的情况下,
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)
注意:我将一个执行程序服务对象传递给此构造函数类.我想知道是否有一种好的测试方法而不是等待睡眠时间.
我是 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 作为输出。有没有办法做到这一点?