2016-09-23 6 views
1

단위 테스트와 관련하여 기본적인 질문이 있습니다. 당신이 단위 테스트를 할 때 기본적으로 코드 단위를 테스트하고 java의 경우 각 메소드를 코드 단위로 취급 할 수 있다고 믿습니다. 저는 우리가 단위 테스트 메소드를 호출 할 때 메소드의 기능을 테스트하기 위해 다른 메소드에 대한 모든 호출을 조롱해야한다고 생각합니다. 아래는 예시입니다. 제 이해가 정확한지 알려주세요.봄 부팅 APP - 단위 테스트

난 클래스를 가지고는, B 및 C

급이 방법을 갖는 1

클래스 B는 방법 1을 갖는 2

클래스 C가 외부 서비스 호출을 방법 1을 갖는다.

클래스 A.method 1-> 클래스 B.method1 -> ClassB.method2 -> 클래스 C.method 1 -> 외부 비누 서비스.

위의 시나리오에서 클래스 A 메서드 1을 단위 테스트 할 때 Class B.method1 응답을 조롱해야합니까? 마찬가지로 클래스 B.method1을 단위 테스트 할 때 클래스 B.method 2를 조롱해야합니까? 나는 이것이 나중에도 호출되는 다른 방법에도 적용될 것이라고 믿습니다.

+0

나는 당신의 질문이 downvoted 것을 보았다. 아마도 스프링 부트와 관련이 없기 때문에 더 일반적인 단위 테스트 질문과 ppl은 오도 된 것으로 생각했기 때문일까? –

+0

@ TonyLang 누군가 지난 10 분 동안 내 게시물 10 개를 downvoted. 그들은 심지어 내 질문에 대한 답변을 downvoting 있습니다. –

+0

@PaulSweatte, 게시 한 링크가 통합 테스트에 대해 말하는 것 같습니다. –

답변

1

내가 "때"단위 "

으로 A 등급을 테스트하고 있기 때문에, 그렇게 생각"나는 방법 1 단위 테스트 클래스입니다 때, 나는 클래스 B.method1 조롱한다 "I 단위 테스트 클래스 B.method1, 모의 클래스 B.method 2 "

당신은 어쩌면 원치 않을 수도 있습니다. B.method2가 개인 인 경우에는 논리의 일부

입니다 B.method1

B.method2이 공개되면, B.method1는 그 방법이 다른 클래스로 인해로 분리 될 수 나타낼 수 호출 사실 method1과 method2는 추상 레벨에 있지 않을 수도 있습니다.

그리고 B.method1을 테스트 할 때 B.method2를 조롱하려면 spy을 사용할 수 있습니다.

+0

Thanks @Tony Lang! –

+0

내 수업이 내 방식이 아니라 단위라는 것을 의미합니까? –

+0

@PunterVickyWell, 나는 각각의 모든 메소드를 하나의 단위로 생각하고 리플렉션을 사용하여 모든 개인 메소드를 테스트했습니다. 그게 잘 끝나지 않았다 :) –