我目前正在学习如何实现JUnit测试,并且我正在为我的Stack实现使用isEmpty()方法.这是我想测试的方法:
boolean isEmpty(){
if(firstFree == 0) return true;
else return false;
}
Run Code Online (Sandbox Code Playgroud)
这是我的考验:
public void isEmptyTest(){
assertTrue(onpStack.isEmpty());
assertFalse(onpStack.isEmpty());
}
Run Code Online (Sandbox Code Playgroud)
如果堆栈有或没有元素没有区别 - 测试总是失败.我知道为什么:因为它不能同时拥有和没有元素.在这两种情况下,我都无法弄清楚如何通过测试.有没有正确的方法?或者我应该为这个isEmpty()方法进行两个不同的测试?
小智 7
顾名思义,单元测试用于测试代码的测试部分.堆栈不能为空且不能同时为空.很少有人建议,请按如下方式分离您的测试用例
public void isEmptyTest(){
Stack emptyStack = new Stack();
assertFalse(emptyStack.isEmpty());
}
public void isEmptyTest(){
Stack nonEmptyStack = new Stack();
nonEmptyStack.push(1);
assertFalse(nonEmptyStack.isEmpty());
}
Run Code Online (Sandbox Code Playgroud)
我还建议您使用isEmpty()方法的简短方法来使代码更清晰,更易理解
boolean isEmpty(){
return (firstFree == 0);
}
Run Code Online (Sandbox Code Playgroud)
希望有所帮助!
| 归档时间: |
|
| 查看次数: |
1550 次 |
| 最近记录: |