문제

다른 사람이 통합 테스트를 특별 단위 테스트로 보는지 궁금합니다. 그러나 다른 프로그래머들로부터 단위 테스트 및 통합 테스트를 분리하는 것이 좋습니다. 누군가가 왜 이것이 좋은 생각인지 설명 할 수 있는지 궁금합니다. 통합 및 단위 테스트를 완전히 다른 것으로 처리하는 데 어떤 종류의 장점이 있습니까? 예를 들어, 통합 테스트 및 단위 테스트를위한 별도의 폴더와 패키지를 보았습니다. 단위 테스트와 통합 테스트를 모두 포함하는 단일 테스트 패키지는 기본적으로 동일한 개념이므로 충분할 것입니다.

도움이 되었습니까?

해결책

나는 다음과 같은 이유로 그것들을 다른 것으로 본다.

  • 단위 테스트는 개발자 환경의 단일 클래스/모듈에서 수행 할 수 있습니다.
  • 실제 생산 설정과 유사한 환경에서 통합 테스트를 수행해야합니다.

단위 테스트는 의도적으로 "가벼운"상태로 유지되므로 개발자가 최소한의 비용으로 필요한만큼 자주 실행할 수 있습니다.

다른 팁

속도가 주된 이유입니다. 가능한 한 자주 실행할 수 있도록 단위 테스트가 가능한 빨리 테스트되기를 원합니다. 통합 테스트를 계속 실행해야하지만 체크인 전에 한 번 실행하면 충분한 IMO가되어야합니다. 단위 테스트 스위트는 훨씬 더 자주 실행되어야합니다. 이상적으로는 모든 리팩토링에 이상적입니다.

나는 단위와 통합 테스트가 완전히 혼합 된 약 15K 주니트 테스트를하는 환경에서 일합니다. 전체 스위트는 실행하는 데 약 30 분이 걸립니다. 개발자는 실행을 피하고 나중에 실수를 찾는 것보다 나중에 실수를 찾습니다. 때로는 테스트의 하위 집합 만 실행 한 후 체크인하고 연속 빌드를 깨뜨리는 버그를 포함합니다.

테스트를 일찍 분리하기 시작하십시오. 큰 스위트 룸이 있으면 매우 어렵습니다.

네. 일반적으로 단위 테스트는 클래스 수준에서 스코핑되므로 모의 물체와 함께 환경에 존재합니다. 반면에 통합 테스트는 진짜 어셈블리 유형.

나는 단지 단일 프로젝트에 유닛과 통합을 어떻게 구성하는지 모르겠습니다.

'단위 테스트'라는 개념을 클래스 레벨에서 범위로 제한하면 예, 별도로 유지하십시오.

그러나 가장 작은 것을 정의하는 경우 관련 있는 테스트 가능한 단위로 특징 그러면 일부 '단위'테스트 중 일부는 기술적으로 '통합'테스트입니다.

용어의 다양한 정의/해석의 재사용은 크게 관련이 없지만 테스트 스위트의 분할은 테스트중인 구성 요소의 범위와 테스트 수행에 필요한 시간의 기능이어야합니다.

예를 들어, 모든 테스트 (단위, 통합, 회귀 등)가 단일 어셈블리에 적용되어 몇 초 안에 실행되면 모두 함께 유지하십시오. 그러나 일부 테스트가 서브넷에 6 개의 깨끗한 설치 기계가 필요한 반면 다른 테스트는 첫 번째 테스트 세트를 후자와 분리하는 것이 좋습니다.

요약 : '단위'및 '통합'테스트의 구별은 관련이 없습니다. 운영 범위를 기반으로하는 패키지 테스트 스위트

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top