我有一个实现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); } } }
如何为这个类编写JUnit测试.我尝试过如下
public class ExampleThreadTest { @Test(expected = IllegalArgumentException.class) public void shouldThrowIllegalArgumentExceptionForInvalidNumber() { ExampleThread exThread = new ExampleThread(-1); ExecutorService service = Executors.newSingleThreadExecutor(); service.execute(exThread); } }
但这不起作用.有什么方法可以测试这个类来涵盖所有代码吗?
解决方法
我想你只想测试run()方法是否正确.此刻,您还要测试ServiceExecutor.
如果您只想编写单元测试,则应在测试中调用run方法.
public class ExampleThreadTest { @Test(expected = IllegalArgumentException.class) public void shouldThrowIllegalArgumentExceptionForInvalidNumber() { ExampleThread exThread = new ExampleThread(-1); exThread.run(); } }