ѕтƒ*_*ѕтƒ 8 java junit multithreading unit-testing
我有一个实现Runnable接口的类ExampleThread.
public class ExampleThread implements Runnable {
private int myVar;
public ExampleThread(int var) {
this.myVar = var;
}
@Override
public void run() {
if (this.myVar < 0) {
throw new IllegalArgumentException("Number less than Zero");
} else {
System.out.println("Number is " + this.myVar);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如何为这个类编写JUnit测试.我尝试过如下
public class ExampleThreadTest {
@Test(expected = IllegalArgumentException.class)
public void shouldThrowIllegalArgumentExceptionForInvalidNumber() {
ExampleThread exThread = new ExampleThread(-1);
ExecutorService service = Executors.newSingleThreadExecutor();
service.execute(exThread);
}
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用.有什么方法可以测试这个类来涵盖所有代码吗?
Ren*_*ink 11
我想你只想测试run()
方法是否正确.此刻你也测试了ServiceExecutor
.
如果您只想编写单元测试,则应run
在测试中调用该方法.
public class ExampleThreadTest {
@Test(expected = IllegalArgumentException.class)
public void shouldThrowIllegalArgumentExceptionForInvalidNumber() {
ExampleThread exThread = new ExampleThread(-1);
exThread.run();
}
}
Run Code Online (Sandbox Code Playgroud)