2013-07-30 2 views
1

단위 테스트에서 조롱 된 메서드에서 반환되도록 만들어진 개체에 대한 용어가 있습니까?당신은 모의 동물로부터 돌아 오기 위해 만들어진 물건을 무엇이라고 부릅니까?

어설 션을 위해 생성 된 개체는 이고 예상되는 개체는입니다. 실제로 무엇이 입니다. 넣은 물건은 입력입니다.

당신이 선택한 객체를 호출하여 조롱하는 프레임 워크에서 .andReturn(someObject) 호를 넘겨야 만합니까? 그러한 객체에 대한 이름 지정 규칙이 없다면 데이터 집약적 인 테스트를 이해하기가 훨씬 어려워집니다.

+0

모의 객체는 다른 모의 객체 또는 실제 객체를 반환 할 수 있습니다. 모의 객체 등을 반환 할 수 있으므로 이름이 없다고 생각합니다. – Katona

답변

0

Gerard Meszaros의 저서 "xUnit 테스트 패턴 : 리팩터링 테스트 코드"는 일반적으로 단위 테스트를 위해 독점적으로 "Test Double"로 사용되는 객체를 나타냅니다.

  • 테스트 스텁
    • 이 예상 결과를 반환, 및/또는 통화 전망 방법 : 그는 일반적으로 사용되는 복식의 몇 가지 다른 종류를 확인했다. 생산 코드를 원하는 경로로 강제 이동하는 데 사용됩니다.
  • 테스트 스파이
    • 나중에 확인을 위해 호출 된 것을 기록, 호출 코드를 관찰합니다. 프로덕션 코드를 원하는 경로로 강제로 이동시키는 값을 반환합니다.
  • 이 특정한 방식으로 호출 될 것을 기대 세트로 초기화
    • 모의 테스트 한 후 만든 호출을 관찰하고 실패의 경우에 예외가 발생합니다. 프로덕션 코드를 원하는 경로로 강제로 이동시키는 값을 반환합니다.
  • 가짜 객체 진정한 객체의
    • 단순한 버전. 일차적 인 사용은 아직 구축되지 않은 종속 구성 요소에 서서 사용하는 것입니다. 종종 데이터베이스 나 서비스를 대체하는 데 사용됩니다.
  • 는 더미 테스트에 중요하지 않은 방법 서명 요구 사항을 충족
    • 아주 간단한 개체입니다. null 객체 또는 null 문자열은 일반적인 더미입니다. 귀하의 경우에는

,이는 더미 객체로 간주 될 것이다. 그것들은 당신의 논리에 의해서만 되돌려 질 수 있지만 그 내용은 시험에 중요하지 않습니다.

+0

감사합니다. 매우 유익합니다. 객체의 값은 최종 예상 출력을 어셈블하는 데 때때로 사용되기 때문에 중요합니다. 아직도이 마네킹을 고려해 주시겠습니까? –

+0

@Deejay, 그들이 코드 경로에서 더 많은 결정을 내리는 데 의존하는 값을 반환한다면, 아마도 스텁으로 분류 할 것입니다. 테스트 루틴에 가치를 되돌려 주기만하면됩니다. 아마도 그 테스트를 인형이라 부릅니다. 10 % 할인 오브젝트를 포함하는 Product 오브젝트가 그 예일 수 있습니다. 제품은 코드를 할인 논리로 유도하므로 스텁이됩니다. 이 테스트에서 할인액의 10 % 또는 20 %가 중요하지 않은 경우 이는 가짜입니다. 10 % 할인 로직이 $ 10.00 제품에서 $ 1.00 절감액을 계산했는지 확인하는 중이라면 가짜입니다. –

0

'모의 객체'또는 '가짜'라고 생각하는 것이 무엇입니까?

+0

모의 객체는 모의 객체가 아니라 모의 객체가 반환하는 것입니다. . 다른 사람들이 어떻게 이름을 지 었는지 듣는 것은 항상 재미 있습니다. –

+0

모의 객체는 실제 객체의 인터페이스를 모방합니다. 미리 준비된 응답을 반환하십시오. –

+0

감사합니다. 그들은 정말로합니다. "미리 준비된 답변"에 대한 간결하고 널리 받아 들여지는 용어를 알고 있습니까? 그게 내가 알아 내려고하는 비트 야. –

1

나는 이것을 "미리 준비된 답변"이라고 부르지 만, 이것은 객체에만 국한되지 않으며 기본 유형이 될 수 있습니다.

관련 문제