2009-04-20 4 views
1

단위 테스트, 방법 또는 시나리오에서 테스트 할 대상은 무엇입니까?단위 테스트, 방법 또는 시나리오에서 테스트 할 대상은 무엇입니까?

각 방법을 테스트하려면 최소 테스트 케이스 설정이 필요합니다.

다른 테스트 방법을 호출하는 테스트의 경우 테스트 케이스에 필요한 설정이 엄청납니다. 개별 메소드에 대한 단위 테스트가 이미있는 경우,이를 사용하는이 메소드를 작성하는 이유는 무엇입니까?

그러나 테스트를 거쳐야하는 기능도 약간 있습니다. 또한 코드 커버 도구는 커버리지 비율에 대해 불평 할 것입니다.

실용적인 의견을 제공해주십시오. 시험 후 테스트 케이스에 필요한 설정을 다른 메소드를 호출하는 방법이 큰 경우

+0

그 질문의 복제본이 아니며, 내가 원하는 것을 대답하지 않습니다. 질문을 읽어보십시오. 어쩌면 제목을 다시 말해야 할 필요가있을 것입니다. –

+0

귀하의 질문과 원본으로 확인 된 질문의 차이점을 보지 못했습니다. –

답변

3

. 단위 테스트가 인 경우 개별 방법은 이미 입니다. 그러면이 장치를 사용하는이 방법을 쓰는 이유는 무엇입니까?

이 메서드는 잘못된 매개 변수를 사용하거나 잘못된 시퀀스로 기본 메서드를 호출하거나 반환 값에 잘못된 작업을 수행 할 수 있습니다.

내 경험상 자 급식 방법의 오류 가능성은 일반적으로 그와 같은 "접착제 코드"와의 상호 작용에 비해 다소 적습니다.

"고전적인"단위 테스트는 각 클래스의 동작을 개별적으로 완벽하게 테스트하는 것이 좋은 개념이지만 사실은이 시나리오가 그다지 일반적이지는 않습니다. 모듈성에 대한 코드와 테스트 가능성에 대한 코드를 디자인하는 데 얼마나 많은주의를 기울 였는지에 따라 다르지만 모든 것을 달성하는 것은 결코 불가능합니다.

2

가능한 실행 경로 당 하나의 테스트 케이스를 사용하여 메소드를 단위 테스트합니다.

단위 테스트의 전형적인 구조는 배열 - 법 - 어설 (트리플 A의)입니다 :

  • 정렬 - 테스트 할 경우의 환경을 조성 (이 스위트 설정에서 수행 할 수 있습니다 또는 테스트 케이스, 또는 둘 다)에
  • 법 -이 있어야한다

과도한 설정을 뭘해야되는 않은 시험 방법을 확인 - 테스트 케이스는 테스트중인 방법

  • 어설를 호출 당신의 디자인을보아야한다는 표시, 예를 들어 당신의 수업이 너무 클 수 있거나 너무 많은 일을 할 수 있습니다. Excessive setup은 안티 패턴입니다.

    mock objects을 사용하면 테스트중인 클래스를 분리 할 수 ​​있습니다.

  • 2

    수-하나의 단위 테스트의 규칙은 다음과 같습니다

    만 테스트 한 번에 한 가지!

    즉, 메서드를 테스트하지 않아도 단일 조건에서 메서드의 단일 측면을 테스트합니다. 그래서 같은 방법에 대한 몇 가지 테스트를 생각해냅니다.

    격리는 좋은 단위 테스트를위한 열쇠입니다. 의존성을 조롱해야합니다 (예 : RhinoMocks 사용). 처음에는 복잡 해 보이지만 장기적으로 관리 및 유지 관리가 훨씬 쉬워졌습니다. 테스트에서 적은 양의 코드 만 테스트하고 가능한 한 사소한 것으로 테스트하고 유지 관리 가능한 테스트를 수행하십시오.