답변:
다이어그램에서 판단하면 Product는 테스트 할 기능이없는 바보 같은 데이터 클래스입니다. 그래서 나는 첫 번째 라인에 대한 테스트를 작성하고 (TDD 스타일을 구현) 종속성 래더를 작성하기 시작합니다. 일반적으로 더 높은 수준의 수업을 시작하기 전에 더 낮은 수준의 수업을 테스트하는 것이 합리적입니다 (즉, 더 낮은 수준에 따라 다름). 이렇게하면 버그를보다 효율적으로 잡을 수 있습니다.
모의 객체를 사용해야하는지 여부는 테스트 된 클래스의 실제 종속성에 따라 다릅니다. 이것들이 테스트에 필요한 원하는 데이터 / 상태로 쉽게 인스턴스화하고 설정할 수있는 간단한 클래스라면 모의가 필요하지 않습니다. (여기서는 예제 디자인의 경우처럼 보입니다.) 그러나 종속성 중 하나가 초기화하기 어렵거나 광범위한 종속성이 있거나 바람직하지 않은 부작용이 있거나 DB와 같은 외부 리소스에 의존하는 경우 의미가 있습니다. 대신 모의 객체를 사용하십시오.
일반적으로 테스트를 위해 테스트중인 시스템 / 객체를 분리하려고하므로 외부에있는 것은 모의해야합니다. 따라서 클래스 다이어그램을 사용하여 주문 객체를 테스트 할 때 선 객체에 모의 객체를 사용하십시오. 라인을 테스트 할 때는 주문 및 제품에 모형을 사용하십시오. 제품을 테스트 할 때는 Line에 mock을 사용하십시오.
"TDD는 주로 소스 코드의 철저한 단위 테스트를 보장하는 부작용이있는 설계 기술입니다" -Scott W. Ambler
아이디어는 단위 테스트를 작성하여 디자인을 찾는 것입니다. 귀하의 경우에는 이미 디자인이 준비되어있는 것 같습니다. 이는 TDD의 목적을 다소 상실합니다 (디자인이 최종 가정이라고 가정).
조롱에 관해서. 모의하고 싶은 경우 주문 테스트시 라인 및 모의 라인에 대한 테스트를 작성할 때 제품을 모의하는 것이 좋습니다. 그러나 여기서 과잉 일 수 있습니다. 개인적으로 가능한 한 조롱을 제한하고 외부 클래스 (예 : 데이터베이스 인스턴스)에 대한 종속성을 분리하는 데 사용합니다.