据我了解,测试类有两种主要方法。
据我所知,第一种方法被认为是不好的做法。
但是为什么呢?
答案 0 :(得分:1)
对我来说,单元测试有两个主要目的:
通过扩展测试的类,测试接缝可能会更改类的行为。这是测试的不良做法。 有时候我什至可以解决这个问题,例如,如果没有DI,则像这样修改当前时间依赖性:
private InstanceToTest instance;
private Calendar now = new GregorianCalendar(2019, 4, 4, 13, 23, 47);
@Before
public void initInstance() {
instance = new InstanceToTest() {
@Override
Calendar getNow() {
return now;
}
};
}
现在我可以在2019年4月4日13:23:47进行测试,以使测试稳定。
有时我想分别测试提取的内部方法。我更喜欢将这些方法包设为私有。这样,我可以从测试中调用它们(如果它位于测试源文件夹中的同一个程序包中)而不会覆盖它们。