使用数组列表进行Junit测试

use*_*666 0 java junit arraylist

我有一个方法设置为添加用户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;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我有一个JUnit测试,assertFalse(true)因为这是我的方法在添加两个具有相同名称的用户时返回的:

@Test
public void testAddingTwoOfTheSameUserToArrayList() {
    User<String, String> user1 = new User<String, String>();
    user1.addUser("password", "SpeedinDave");
    user1.addUser("password", "SpeedinDave");
    assertFalse(true);
}
Run Code Online (Sandbox Code Playgroud)

但是,测试总是错误(红色条).有任何想法吗?

ete*_*nay 8

你应该测试类似的东西:

@Test
    public void testAddingTwoOfTheSameUserToArrayList() {
        User<String, String> user1 = new User<String, String>();
        user1.addUser("password", "SpeedinDave");
        assertFalse(user1.addUser("password", "SpeedinDave"););
    }
Run Code Online (Sandbox Code Playgroud)

确保第二个addUser()返回false.

assertFalse(b)如果参数b为false,则会成功.所以,如果你通过true,它将永远失败.

  • 修改第一个`user1.addUser("password","SpeedinDave");```assertTrue(user1.addUser("password","SpeedinDave"));也可能是值得的. (2认同)