![](/img/trans.png)
[英]Why is assertEquals(Object[], Object[]) from JUnit 4 deprecated?
[英]assertEquals(Object[], Object[]) in JUnit?
因此,我正在进行JUnit 4.0测试,并且测试了对象(Stick)阵列是否相等(相等),但是我进行了故障测试。
棒类:
public class Stick {
private char stick;
public Stick() {
stick = 'I';
}
Game类-在其中初始化Stick数组:
public class Game {
private Stick[] sticks;
public Stick[] StartNewGame() {
counter = 1;
sticks = new Stick[22];
for(int i = 0; i<sticks.length; i++) {
Stick a_stick = new Stick();
sticks[i] = a_stick;
}
return sticks;
}
测试代码:
@Test
public void ShouldStartAGame() {
Stick[] sticks = new Stick[22];
for(int i = 0; i<sticks.length; i++) {
Stick a_stick = new Stick();
sticks[i] = a_stick;
}
assertArrayEquals(sticks, game.StartNewGame());
}
我认为,这是由于Stick上缺少equals方法,所以equals比较Stick[]
元素的内存地址并发现它们是不同的。
覆盖Stick中的默认equals
(和hashcode
)方法。
测试还会违反DRY原理,因为您在测试中重复执行代码,如果您使用剪切和粘贴将实现中的错误复制到测试中,那么世界上没有任何单元测试会发现错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.