스텁
-
테스트 더블: 출력값테스팅 관련/개념 2020. 8. 9. 23:40
이어지는 시리즈 테스트 더블: 소개 테스트 더블: 입력값 테스트 더블: 출력값 더미 객체, 테스트 스텁, 페이크 객체 → 입력값 제공 모의 객체(Mock), 스파이 객체 → 입력값, 세밀한 모니터링 기능 제공 테스팅은 function 출력값을 확인하는 것보다 더 많은 것을 포함한다. 만약, function이 void값을 리턴한다면? 상호작용(interactions)을 테스트할 것! - 올바른 순서대로 메소드가 호출되었는지 - 메소드가 호출 되었는지/안 되었는지 - 메소드 호출에 적절한 파라미터들이 사용되었는지 모의 개체는 페이크 객체들의 상호작용을 관찰할 수 있게 해준다 // Mocking은 객체 간의 상호작용을 결정하는데 사용된다 // AirlineTravelService에 대해 호출되는 메소드를 보여..
-
테스트 더블: 입력값테스팅 관련/개념 2020. 8. 9. 23:00
이어지는 시리즈 테스트 더블: 소개 테스트 더블: 입력값 테스트 더블: 출력값 입력값으로 사용되는 3가지 1. 더미 객체 테스트 입력을 위해 파라미터로서 필요한 값. 어떤 값인지 중요치 않기때문에 무엇이든 대입한다. null값을 제외하지 않음. 2. 테스트 스텁 여러 값들이 결과값을 제공할 수 있도록 하는 매우 단순화된 특수 목적 객체. 예) 특정 입력값들이 있는 테스트 스텁에 메소드를 호출하면, 결과값을 제공할 수 있다. 3. 페이크 객체 사용함에 있어, 값비싼 것을 저렴한 것으로 대체함. 예) 서버에 실행되는 외부 데이터베이스 → 인메모리 데이터베이스(비용적으로 저렴한 쿼리) 페이크 객체: 테스트 대상인 것처럼 실행되는 새로운 클래스를 작성 더미 객체, 테스트 스텁: 프레임워크(예. Mockito)를..
-
테스트 더블: 소개테스팅 관련/개념 2020. 8. 9. 17:53
이어지는 시리즈 테스트 더블: 소개 테스트 더블: 입력값 테스트 더블: 출력값 테스트 더블 (= 영화 스턴트 대역) 시험 대상 시스템(SUT)을 지정하는 클래스 또는 시스템을 테스트하기 위해 필요한 컴포넌트들의 단순화된 버전 테스트 더블을 생성하는 이유? 컴포넌트들이 아직 완성되지 않음 컴포넌트들을 구성하는데 많은 비용이 들어감 컴포넌트들이 제 3자에 의해 소유되어있음 테스팅의 결과로 실제 컴포넌트들에 부작용이 생기는 것을 피하기 위함 항상 잘 실행되지는 않지만 어쩔 때는 괜찮은 테스트(Flakey Tests)들을 방지하는데 도움을 줌 시험 대상 시스템을 세밀한 관찰을 허용함(테스트 결과뿐만이 아닌 컴포넌트들의 상호작용) 테스트 더블은 생태계를 제공한다 더미 객체: 테스트 대상 시스템에서 파라미터로서 필..