통합 테스트는 모의를 사용합니까?


24

저는 현재 학기 프로젝트를위한 단위 테스트 및 통합 테스트와 같은 여러 유형의 테스트를 수행해야하는 소프트웨어 테스트 강의 중입니다. 통합 테스트를 위해 교수는 통합 테스트에 모의 및 모의 라이브러리 (EasyMock 및 Mockito와 같은)를 사용한다고 말했습니다. 그래도 상당히 혼란스러워지고 있습니다. 통합 테스트는 클래스, 모듈, 서비스 등을 테스트하는 것입니다. 여러 클래스 및 서비스를 테스트 할 때 모의 및 스텁이 통합 테스트에 사용하기에 적합한 이유는 무엇입니까?


8
"통합"및 "단위"테스트는 일반적으로 용어에 동의하지 않습니다. 교수님이 그 용어를 어떻게 정의했는지 정확하게 물어 보는 것이 가장 좋습니다.
RubberDuck

1
단지 의견입니다. 통합 테스트는 종속성을 테스트하는 것이 아니라 코드와 종속성 (호출, 응답 및 오류 처리 등)을 올바르게 통합하는 테스트입니다.
Laiv

답변:


25

여러 외부 구성 요소에 영향을주는 기능이있는 경우 특정 구성 요소를 격리하고 테스트하기 위해 하나만 제외하고 모의 할 수 있습니다. 예를 들어, 웹 서비스를 호출 한 다음 결과에 따라 데이터베이스로 무언가를 수행하는 함수가 있다고 가정하십시오. 세 가지 통합 테스트를 작성할 수 있습니다.

  1. 웹 서비스 호출을 조롱하지만 실제 데이터베이스 연결이 포함 된 테스트
  2. 실제 웹 서비스를 호출하지만 모의 데이터베이스 연결을 사용하는 테스트.
  3. 실제 웹 서비스 호출을 수행하고 실제 데이터베이스 연결을 포함하는 테스트.

세 가지 테스트를 모두 실행했는데 1과 3이 실패하면 모의 데이터베이스 연결을 사용하는 테스트 만 통과했기 때문에 데이터베이스에서 작동하는 코드에 버그가있을 수 있습니다.

일반적으로 통합 테스트는 모의를 사용하지 않지만 때로는 이와 같은 작업을 수행했습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.