如何测试扩展Thread的类

时间:2011-04-25 01:16:53

标签: java testing junit4

可以使用jUnit 4中的assertEquals(),asssertTrue(_)等断言来测试Java方法。如何使用断言来测试这样的东西:

public class MyThread extends Thread {
    public int val;

    public MyThread(int val){
        this.val = val;
    }

    @Override
    public void run(){
         // doSomeWork(); 
    }
}

另外,在jUnit返回测试结果之前,是否需要等待run()完成执行?

1 个答案:

答案 0 :(得分:3)

最重要的事情首先:通常认为更好的设计是不继承不必要的地方。通常情况下,更好设计的代码更容易测试。

测试现有代码的最简单方法是调用run而不是start。如果你想保留线程,可以调用Thread.join等待完成。您可能需要调用Thread.setUncaughtExceptionHandler来报告线程中任何未经检查的异常。