2014-03-02 2 views
0

내 테스트 경험은 주로 루비의 Rspec입니다. 그리고 최근에 자바 jUnit 테스트를 작성하려고했습니다. 여기에 예제가 있습니다. 그런 다음이 테스트가 필요한지 궁금해지기 시작했습니다. properties()은 메서드 서명을 기반으로 Properties 또는 null을 반환합니다. 그래서 메소드를 테스트하고 싶다면 반환 값이 null이 아닌지 테스트해야합니다.이 junit 테스트가 필요합니까?

public class HelperTest { 
@Test 
public void testProperties() { 
     assertThat(Helper.properties(), instanceOf(Properties.class)); 
    } 
} 


public class Helper { 
    public static Properties properties() { 
      // ... some code to init properties ... 
      return properties; 
    } 
} 
+1

'assertNotNull (...)'에 문제가 있습니까? – Bohemian

+0

... 또는'assertThat (Helper.properties()). isNotNull()'? – fge

+1

결코 실패하지 않는 테스트는 잘못된 보안 감각을 제공합니다. –

답변

0

귀하의 의견에 감사드립니다. 의견을 바탕으로 제 질문에 답하도록하겠습니다. 단순히 메소드가 null 값을 반환하지 않습니다 확인하기 위해 테스트합니다

public void testProperties() { 
    assertThat(Helper.properties(), is(notNullValue())); 
} 

:

이 새로운 테스트입니다. 메서드가 null이 아닌 값을 반환하면 속성의 인스턴스가됩니다. 즉, 메서드가 속성의 인스턴스를 반환하는지 테스트 할 필요가 없습니다.

+0

하지만 서명에 따라 널 (null)도 반환 할 수 있다고 말했죠. 정의에 따라, null이 아닌 -을 반환하면 확실히 Properties를 반환합니다. –

+0

하지만 서명에 따라 널 (null)도 반환 할 수 있다고 말했죠. 정의에 따라, null이 아닌 -을 반환하면 확실히 Properties를 반환합니다. –

+0

Hey @DaveNewton 1) 어서션은 메서드가 null이 아닌 값을 반환 할 것으로 예상하므로 2) 서명은 반환 할 Properties를 명시 적으로 기대합니다. 즉, null이 아닌 값은 반드시 등록 정보입니다. null이 아닌 값이 반드시 Properties가 될 것이므로 메서드가 null이 아닌 값을 반환하는 것으로 테스트하기에 충분하다고 말할 수 있습니까? 이것에 대해 더 많은 의견이 있으시면 감사드립니다! – tommi

관련 문제