2012-06-19 2 views

답변

13

기본적인 차이는 이것이다 : 당신 일해야 expect 일, 그리고 발생할 수 있음을 stub 것.

모의 개체가 실패하는 방법은 두 가지입니다. 예기치 않은/unstubbed 메서드가 호출되거나 예상 메서드가 호출되지 않습니다.

  1. 예기치 않은 호출. mock 객체가 스텁되거나 예상되지 않은 메시지를 받으면 즉시 예외가 발생하고 테스트가 실패합니다.
  2. 예상되는 호출. 귀하의 모의목 (일반적으로 시험이 끝날 때)에 verify으로 전화하면 예상했던 모든 방법이 실제로 호출되었는지 확인합니다. 그렇지 않은 경우 테스트가 실패합니다.

이 동작을 변경하는 몇 가지 유형의 모의이 있습니다. 멋진 모의 및 부분 모의. 좋은 mock은 메소드를 스텁하는 것을 방지합니다. 기본적으로 예기치 않은 호출이 발생합니다. 부분 모의 (partial mock)는 실제 객체에 전송 된 메시지를 가로 채는 방법입니다. 부분 모의 객체에서 기대하거나 스텁하는 모든 메시지는 mock 객체로 전송됩니다. 다른 모든 메시지는 실제 개체로 전송됩니다. 좋은 모의 객체와 부분 모의 객체 모두에 대해 예기치 않은 호출 (위의 규칙 1)에서 테스트 실패가 발생하지 않습니다.

관련 문제