我目前正在学习如何实现 JUnit 测试,并且正在为我的 Stack 实现努力使用 isEmpty() 方法。这是我要测试的方法:
boolean isEmpty(){
if(firstFree == 0) return true;
else return false;
}
这是我的测试:
public void isEmptyTest(){
assertTrue(onpStack.isEmpty());
assertFalse(onpStack.isEmpty());
}
堆栈是否有元素没有区别——测试总是失败。我知道为什么:因为它不能同时拥有和不拥有元素。在这两种情况下,我都不知道如何通过测试。有正确的方法吗?或者我应该为这个 isEmpty() 方法做两个不同的测试吗?
最佳答案
顾名思义,单元测试是为了测试代码的测试部分。堆栈不能同时为空和不为空。根据一些建议,请按如下方式分离出您的测试用例
public void isEmptyTest(){
Stack emptyStack = new Stack();
assertFalse(emptyStack.isEmpty());
}
public void isEmptyTest(){
Stack nonEmptyStack = new Stack();
nonEmptyStack.push(1);
assertFalse(nonEmptyStack.isEmpty());
}
我还建议对您的 isEmpty() 方法使用简写形式,以使代码更清晰、更易于理解
boolean isEmpty(){
return (firstFree == 0);
}
希望对您有所帮助!
关于java - isEmpty() 堆栈方法的 JUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44283944/