我有以下 void 方法,但我不知道如何使用 JUnit 测试来测试它。
public void removeFriend(String rf)
{
boolean found = false;
int i = 0;
while(i < friendList.size() && !found)
{
if(friendList.get(i).equals(rf))
{
found = true;
}
else{
i++;
}
}
friendList.remove(i);
}
最佳答案
首先,您是否知道可以用 friendList.remove(rf);
替换整个方法?它将完全按照方法名称的要求进行操作(并且保证已经过全面测试)。
至于测试,即使是“纯”单元测试的最教条的支持者也不会声称 OO 语言中类的每个方法都必须在完全隔离的情况下进行测试。否则,您根本无法测试 OO 代码,单元测试将仅限于函数式语言。
所以你在测试中所做的就是创建一个包含该方法的类的对象,使用它的构造函数或 setter 将其置于该方法可以操作的特定状态,然后调用该方法,然后测试该对象之后是预期的状态。更具体地说:
- 创建类的对象
- 将一些条目放入
friendList
- 使用其中一个条目调用
removeFriend()
- 测试该条目是否不再存在
关于Java 使用 JUnit 测试一个方法 (void),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4500059/