提供包私有的测试方法?

时间:2016-04-28 16:54:46

标签: java testing

我正在写下面的课程:

public class MyClass{

    private final MyAnotherClass[][] anotherClasses;

    public MyClass(//args){
        //initialization
    }

    //...
}

我想测试这个类,但是不想提供暴露其iternal状态的任何方法(在这种情况下为anotherClasses数组)。测试将测试数组的状态,因此我们必须访问它。

是否考虑提供一种方法作为一种好的做法,比如说

MyAnotherClass[][] getAnotherClasses(){
    retun anotherClasses;
}

package-private可见度使用 进行测试?我有点不确定。我们介绍了类和它的测试之间的一些恼人的耦合......

也许有更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:1)

如前所述,测试非公开方法不是一个好习惯。但有时如果真的需要我,我会使用番石榴的@VisibleForTesting注释。