2013-06-04 2 views
0

나는 같은 사용자가 추가되면 falseArrayList에 사용자를 추가하고 반환하도록 설정하는 방법이 있습니다 그 때문에 그런Junit와 테스트

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); 
} 

그러나 테스트는 항상 false (빨간색 막대)로 표시됩니다. 어떤 아이디어?

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

그 두 번째 addUser() false를 반환해야 할 :

+0

what 's username? – ssedano

+2

'assertFalse (true)'가 무엇을 기대합니까? 그리고 왜 당신은'addUser'의 결과를 사용하지 않습니까? –

+1

반환 값을 어서 트하려고하므로 반환 값을 캡처하여 assertFalse()에 인수로 전달해야합니다. –

답변

8

당신은 그런 일을 테스트해야합니다.

assertFalse(b) 매개 변수 b가 거짓이면 성공합니다. 따라서 true을 전달하면 항상 실패합니다.

+0

Genius! 고마워요! – user2297666

+2

첫 번째'user1.addUser ("password", "SpeedinDave");를'assertTrue (user1.addUser ("password", "SpeedinDave"));' –

3

지금은 addUser() 메서드의 반환 값을 테스트하는 것이 아니라 부울 상수 truefalse으로 평가된다는 점에 유의하십시오 (이는 사실이 아님). 아마도 다음과 같은 것을 원할 것입니다 :

@Test 
    public void testAddingTwoOfTheSameUserToArrayList() { 
     User<String, String> user1 = new User<String, String>(); 
     assertTrue(user1.addUser("password", "SpeedinDave")); 
     assertFalse(user1.addUser("password", "SpeedinDave")); 
    } 
관련 문제