2017-11-16 1 views
0

저는 정말 포괄적 인 단일 메소드를 가지고 있습니다. 이 메소드 내에서 다른 메소드가 호출되고 각 메소드는 이전 메소드에 종속됩니다.JUnit은 포괄적 인 방법을 테스트합니다.

내 질문은 : JUnit을 사용하여이 복잡한 메소드를 테스트하는 가장 좋은 방법은 무엇입니까?

하나의 @Test 메서드를 만들고이 메서드 내에서 다른 메서드를 호출 할 수 있습니까? 예 :

@Test 
public void testRun(){ 
    testMethod1(); 
    testMethod2(); 
    ... 
} 

testMethod1(){ 
assertNotEquals(); 
... 
} 

나는 그렇게 쉽게 믿을 수 없습니다. 독자적으로 각 방법을 테스트하는 것이 낫지 않습니까? 그러나 어떻게 구현할 수 있습니까? 그들의 최선의 관행은 무엇입니까?

하지만 이것이 올바른 방법 일 수 있습니다. 어떤 제안에 대한

감사합니다! :)

+0

독자적으로 각 방법을 테스트 할 수 없다고 생각하는 이유는 무엇입니까? 특정 상태를 설정하고 그 결과를 확인하는 것이 가능해야합니다. – RobAu

+1

당신의 방법이 너무 복잡해서는 안됩니다. 방법을 최대한 짧게 유지하십시오 (https://softwareengineering.stackexchange.com/a/146274/32666). 그러면 코드를 테스트하고 코드베이스를 유지하는 것이 더 쉬울 것입니다. –

+1

그들은 사적이라고 생각합니다. 하지만 네가 테스트를 작성하는 데 어려움을 겪고있을 때, 코드가 고품질이 아닐 수도 있다는 신호일 것입니다. – Pijotrek

답변

1

먼저 포괄적 인 방법을 리팩토링해야합니다.

당신은 내부 방법이 서로에 달려 있음을 암시했습니다. 우연히 동일한 의미를 공유하고 업데이트한다는 의미입니다.

이 상태를 개체로 추출하여이 개체를 각 내부 메서드의 매개 변수로 사용하십시오.

이렇게하면 내부 메서드를 별도로 테스트 할 수 있습니다.