在不同的测试类中测试一个类的方法

时间:2016-05-10 13:07:15

标签: java unit-testing junit

我有一个orchestrator类,它有一个方法通过调用多个方法实现一个功能:

public class Orchestrator {
    public void doImportantStuff(){
       firstDoThis();
       thenDoThis();
       finallyDoThis();        
    }

    private void firstDoThis(){
       ...
    }

    private void thenDoThis(){
       ...
    }

    private void finallyDoThis(){
       ...
    }
}

我的问题是,我有很多案例要测试从doImportantStuff()调用的所有方法,所以我计划为每个方法编写单独的测试类。这是我应该避免的,还是听起来不错?

1 个答案:

答案 0 :(得分:0)

这实际上取决于您要编写的测试类型。单元测试假设您单独测试每个方法,但集成测试将测试一体化。

假设这些方法确实包含一些业务逻辑,我建议为每种方法编写一组单元测试(可能将它们移到单独的类中以符合单一责任原则)。

在确定所有方法都正常工作之后,是时候编写集成测试并测试逻辑如何集成(例如特定的调用顺序)。顺便说一句,这里有些嘲讽工具可能很有用,因为你不会再次测试每种方法。