我设置了一个方法来将用户添加到ArrayList
,如果添加了相同的用户,则返回false
:
public boolean addUser(K pass, V user)
{
if (username.contains(user))
{
return false;
}
else
{
password.add(pass);
username.add(user);
size++;
return true;
}
}
然后我对assertFalse(true)
进行了JUnit测试,因为这是我的方法在添加两个具有相同名称的用户时返回的内容:
@Test
public void testAddingTwoOfTheSameUserToArrayList() {
User<String, String> user1 = new User<String, String>();
user1.addUser("password", "SpeedinDave");
user1.addUser("password", "SpeedinDave");
assertFalse(true);
}
然而,测试总是错误(红色条)。有什么想法吗?
答案 0 :(得分:8)
你应该测试类似的东西:
@Test
public void testAddingTwoOfTheSameUserToArrayList() {
User<String, String> user1 = new User<String, String>();
user1.addUser("password", "SpeedinDave");
assertFalse(user1.addUser("password", "SpeedinDave"););
}
确保第二个addUser()
返回false。
assertFalse(b)
将成功。因此,如果您通过true
,它将始终失败。
答案 1 :(得分:3)
现在你没有测试addUser()
方法的返回值,而是布尔常量true
计算为false
(这永远不会是真的)。你可能想要这样的东西:
@Test
public void testAddingTwoOfTheSameUserToArrayList() {
User<String, String> user1 = new User<String, String>();
assertTrue(user1.addUser("password", "SpeedinDave"));
assertFalse(user1.addUser("password", "SpeedinDave"));
}