여러 접근 방법이 코뿔소 모의 객체를 사용할 때 단위 테스트를 작성하기 위해 존재 방법?Rhino Mock에서 사용할 수있는 가장 좋은 스타일/구문은 무엇입니까?</p> <ul> <li>표준 구문</li> <li>기록/재생 구문</li> <li>유창 구문</li> </ul> <p>을 이상적인 가장 마찰이 무엇 :
8
A
답변
0
흥미로운 질문입니다! 내 자신의 환경 설정은 반사 기반 구문 (표준 구문에 의한 것)에 대한 것입니다. 나는 이것이 매우 마찰이 없다고 주장 할 것이다. 많은 여분의 코드를 추가하지 않기 때문이다. 제대로 구현 된 것처럼 인터페이스에서 스텁을 직접 참조한다.
매우 성가신 일이지만 저는 Fluent 문법도 매우 좋아합니다. Record/Replay 구문은 Fluent 구문만큼 복잡하지는 않지만 (겉으로는 그럴 듯하지는 않지만) 적어도 직관적이지는 않습니다. 필자는 NMock2 만 사용 했으므로 Record/Replay 구문은 약간 외계인이지만 Fluent 구문은 꽤 친숙합니다.
그러나 this post과 같이 사용자가 기대치를 검증/주장에서 분리하는 것을 선호하는 경우 Fluent 구문을 선택해야합니다. 궁극적으로 스타일과 개인 취향의 문제입니다.
1
Arrange, act, assert. 저는 MoQ를 사용하고 Arrange, Assert, Act, Verify를 선호합니다. 나는 끝까지 무거운 짐을 싣기보다 행동하기 전에 모든 것을 준비하고 싶습니다.
1
.NET 2.0의 경우 레코드/재생 모델을 사용하는 것이 좋습니다. 우리는 이것이 검증과 기대를 명확히 구분하기 때문에 이와 같습니다.
using(mocks.Record())
{
Expect.Call(foo.Bar());
}
using(mocks.Playback())
{
MakeItAllHappen();
}
.NET 3.5 및 C# 3을 사용하는 경우 유창한 구문을 사용하는 것이 좋습니다.
관련 문제
- 1. Heredoc <<< 또는 <<?
- 2. 연산자 << : std :: cout << i << (i << 1);
- 3. << 연산자를 오버로드하여 표준 출력 :
- 4. 연산자 << 과부하
- 5. 조작 << 상속
- 6. 에코 "<! <"가 "<! >"을 반환하는 이유는 무엇입니까?
- 7. 연산자 오버로드 <<
- 8. Tortoise svn <<<<를 파일에 추가 중!
- 9. 인쇄 관련 질문 <<<
- 10. PHP <<< OUT 및 OUT;
- 11. PHP <<<는 무슨 뜻입니까?
- 12. <<< CON in PHP 사용
- 13. 맞춤 << 방법
- 14. <? php와 <?
- 15. << - 상수는 무엇을합니까?
- 16. <? 및 <? php
- 17. 무엇을 | << 평균?
- 18. << 셀프 블록
- 19. Asp.net : <% # 또는 <%
- 20. "<"을 "% lt;"로 대체하는 NSXML
- 21. 목록 (<% 번호, <% = 등)
- 22. Ostream << 과부화 혼란
- 23. XAML 코드 상속을 에뮬레이트하는 가장 좋은 방법은 무엇입니까?</p> <ul> <li>DataTypeWholeNumber</li> <li>이 DataTypeLine</li> <li>DataTypeDate는</li> <li>DateTypeDuration</li> <li>는</li> 그들은 모두 일반 C# 클래스에서 상속 </ul> <p>상속 등 :
- 24. <대신 ASP.NET에서 렌더링 <
- 25. self.class_eval << DEF ... DEF
- 26. PHP "<<< TEXT 일부 콘텐츠 TEXT"
- 27. 내가 "< < < < < < < 변형"문자열없이 제 3에 두 개의 버퍼의 차이점을 결합 할 수있는 방법 원산지 정보
- 28. é é << charset
- 29. 오버로드 된 연산자 <<
- 30. PHP에서 <? php 대신 <?