Mock Object를 이용한 테스트 (행위기반의 테스트 케이스)
Mock Object는 어떤 한 부분을 대신하는 가짜 객체이다. 대부분 모듈이 가진 의존성에 의해 Mock Object를 사용하는 주요 원인이며, 아래와 같은 경우에 사용하게 된다.
- 특정 환경을 구축하는데 많은 시간이 소요되는 경우 (메일 서버 연동을 위하여 DB 및 모듈 설치 등의 많은 작업이 소요 되는 경우)
- 특정 모듈을 사용하기 위한 여건이 부족한 경우 (미구현된 모듈 및 버그 모듈등)
- 타 시스템과의 연계되는 모듈 (타 시스템의 요청 결과에 따라 움직이는 모듈의 경우)
- 특정 상황을 만족해야만 사용 가능한 모듈 (인쇄 실패시 처리 모듈등)
- 테스트 시간 단축을 위하여 사용 (네트워크 간 연동 모듈 테스트시 접속하는데 시간이 많이 소요 되는 경우)
- Dummy Object : 인스턴스화 될 수 있을 정도로만 구현한 객체 (기능 사용X) , 메소드를 사용하지 않는 객체
- Test Stub : Dummy Object각 실제로 동작하는 것처럼 보이게 만든 객체로, 메소드를 호출하면 동작을 하긴 하나 반환은 기본값을 반환하게끔 구성, 인스턴스화 + 상태를 표현하는 경우에 해당됨, 객체의 특정 상태를 가정해서 만들어 놓은 단순 구현체, 하드 코딩되어 있기 때문에 로직이 들어가는 부분은 테스트 할 수 없다.
- Fake Object : 여러개의 인스턴스를 대표하는 경우 혹은 구현이 들어가는 경우 (DB 조회 결과를 반환하는 Fake Object는 실제 DB를 조회 하지 않으나 가상의 테이터를 생성하여 반환하도록 구성)
- Test Spy : 테스트에 사용되는 객체에 대해서 호출여부를 감시하거나 정보를 주기 위한 목적의 객체
참고 URL:
http://egloos.zum.com/kingori/v/4169398
'Software Quality Engineering > ⓣⓔⓢⓣ' 카테고리의 다른 글
SonarQube (0) | 2018.10.18 |
---|---|
[개발 환경] 구글 테스트 프레임워크 - 작업중 (0) | 2017.11.28 |
[애자일] 애자일 설계의 원칙과 패턴 (SOLID) (0) | 2017.11.24 |
[개발 환경] Clang Static Analyzer (0) | 2017.11.24 |
[개발 환경] 빌드 자동화 도구 Gradle (0) | 2017.11.23 |