답변:
예. Microsoft Moles , TypeMock Isolator 및 JustMock 과 같은 일부 프레임 워크를 사용하면 거의 모든 것을 조롱 할 수 있습니다. 이러한 모의 도구는 일반적으로 기존 레거시 코드에서 도구를 사용하려는 개발자에게 더 적합합니다. 더 테스트 가능한 디자인으로 리팩토링 할 수 없기 때문입니다. *
전통적으로 테스트 가능한 디자인은 코드베이스가 인터페이스, 추상 클래스, 가상 메소드, 봉인되지 않은 클래스 등을 자유롭게 사용해야 함을 의미합니다. 따라서 Moq 및 RhinoMocks 와 같은 전통적인 조롱 프레임 워크는 Test Driven Development, Dependency Injection 및 다른 개념들. 그건 그렇고, 테스트 할 수있는 코드뿐만 아니라 유지 보수가 쉬운 코드도 얻을 수 있으므로 Dependency Injection을 사용하는 것이 좋습니다.
* 기존의 테스트 (및 조롱) 도구와 함께 사용할 수있는 코드로 테스트없이 코드를 천천히 리팩터링하는 방법에 대한 방법은 레거시 코드를 사용한 효과적인 작업을 참조하십시오 .
MOQ 튜토리얼 TypeMock 아이솔레이터, RhinoMocks 및 MOQ : 몇 가지 특정 도구와 관련이 설명 시작 부분에 배경, 철학, 그리고 논쟁의 오른쪽에있는 섹션이 있습니다. Moq를 설명하기 위해 작성되었으므로 자연스럽게 약간 비뚤어져 있지만 모의 프레임 워크의 차이점을 이해하려고 할 때 도움이되는 것으로 나타났습니다.
C # Mocking Frameworks 에서이 SO 스레드에 대한 응답 도 유용하다는 것을 알았습니다 . 대부분 사용자가 실제로 유용하다고 생각하는 하나의 Mocking Framework를 참조하지만 HaraldV 의 프록시 기반 모의 및 프로파일 러 기반 모의에 대한 답변이 있습니다 .
또한 온라인에서 비교 차트를 찾을 수있었습니다. 2009 년 이후 였으므로 최신인지 잘 모르겠습니다. TypeMock 및 콜백에 대한 정보가 오래되었다는 의견이 하나 이상 있지만 RhinoMocks, Moq, NMock, 및 TypeMock 비교 차트
쉬운 코드 비교를 위해 여러 조롱 프레임 워크에 테스트 사례가있는 Google 코드 프로젝트가 있습니다 : mocking-frameworks-compare
우리 팀에서는 Microsoft Moles를 선택했습니다 . # 2, # 3 및 # 4에서 크게이기는 반면, 대부분의 대안보다 관용적이지 않고 # 1에서 가장 낮습니다.