2010-04-13 3 views
3

나는 선인장과 모의 객체 (jMock, 쉬운 모의)와 혼동 스럽다.선인장 대 모의 객체 (jMock, 쉬운 모의)

아무도 다음 질문에 답할 수 있습니까?

  1. 시험용으로 act터스를 사용하는시기는 언제입니까?
  2. 테스트를 위해 Cactus를 사용하지 않을 때?
  3. 테스트 용 모의 객체를 사용하는 경우는 언제입니까?
  4. 테스트 용 모의 객체를 사용하지 않을 때?

답변

4

글쎄,이 질문에 대한 객관적인 대답은 없지만 모의 객체는 코드의 동작을 테스트하는 것에 관한 것이지만 컨테이너와 올바르게 상호 작용하는 경우 말할 수는 없습니다.

Cactus는 코드를 컨테이너에서 실행하므로 통합 테스트가 더 많이 필요하지만 코드가 실제로 컨테이너와 올바르게 상호 작용한다는 사실을 알 수 있습니다 (보낸 내용은 합법적입니다.).

그래서 요약하면 모의에서는 행동 x를 원한다면 행동 x가 있음을 알립니다. 선인장은 행동 x가 컨테이너 내에서 실제로 예상되는 결과를 얻는다는 것을 알려줍니다.

당신이 사용하는 것은 당신이 당신의 시험으로 무엇을하려하는지에 달려 있습니다. 더 많은 TDD를 원한다면 모의 접근법이 필요합니다. 프로토 타입을 분리하여 컨테이너가 코드를 작성하는 방법에 대해 충분히 알고 있는지 확인한 다음 단위 테스트를 수행 한 다음 통합 테스트/승인 테스트를 통해 모든 코드가 제대로 작동하는지 확인합니다.

그러나 기존의 단위 테스트를 수행하려는 경우, 가장자리의 경우와 동작을 테스트하려는 다른 값으로 코드를 치는 경우, mocks로 테스트를 수행하면 컨테이너의 큰 부분이 누락되었습니다.

현재 나는 Mock 접근법을 선호하지만, 만약 Cactus로 돌아 가야한다면 컨테이너에 대한 불변량을 테스트하는 것이 더 많을 것입니다. 따라서 컨테이너를 업그레이드하면 컨테이너 작동 방식이 크게 변경되지 않습니다. 이는 우리 코드에 영향을 미칠 것입니다.

3

테스트를 위해 Cactus를 사용하는시기는 언제입니까?

통합 테스트의 경우 (상호 작용 컨테이너 포함). 그것은 선인장의 달콤한 자리였습니다. 이러한 테스트는 대개 거친 작업이며 ... 실행 속도가 매우 빠릅니다.

테스트를 위해 Cactus를 사용하지 않을 때?

통합 테스트 이외의 테스트 (통합 테스트의 경우에도 Cactus 테스트를 본 이후로 오랜 시간이 걸렸습니다).

테스트 용 모의 객체를 사용하는 경우는 언제입니까?

단위 테스트 무언가를 단위로하고 싶을 때는에 의존하는 것. 이러한 테스트는 일반적으로 세분화되어 있으며 실행 속도가 빠릅니다.

시험용 모의 객체를 사용하지 않을 때?

당신은 통합 테스트를 작성하려는

는 (즉 이 상호 작용을 테스트하기 위해), 기능 테스트 등

캑터스 웹 사이트에 Mock Objects vs In-Container testing 페이지는 꽤 잘 요약되어 있습니다.