2010-03-16 1 views
11

나는 포럼을 검색했지만 비슷한 질문을 찾지 못했습니다. 최선의 방법으로 앞으로 나아갈 수있는 조롱 프레임 워크에 대한 최종 결정을 내릴 것입니다. Moq에 대해 결정했습니다. MS가 마침내 Moles라는 조롱하는 프레임 워크를 만들었을 때까지 비슷한 작업을하는 것처럼 보입니다. 프로파일 러 API 섹시 니스 등을 통해 TypeMock에 연결하십시오.생산에 Moles/Pex를 사용하는 사람은 누구입니까?

여기에는 백만 개의 'NMock 대 Moq 및 TypeMock 대 Rhino ....'스레드가 있습니다. 그러나 나는 두더지가 관련되어있는 것을 결코 보지 못했습니다. 사실, 나는 짧은 시간 전에 그 존재가 있는지조차 알지 못했습니다. 그것을 사용하는 사람? 프로덕션에서? 누구든지 낡은 조롱 프레임 워크를 덤프하고, 그렇다면 어느 것이 옳은가? 당신이 사용한 조롱 프레임 워크와 어떻게 비교 되었습니까?

감사합니다. ps, 우리는 VS2008을 사용 중이며 조만간 2010으로 옮깁니다.

+0

제 생각으로 Moles는 조롱하는 프레임 워크가 아닙니다. 그것은 요격에 더 가깝습니다. 내가 Moles에 대해 싫어했던 것 : 더 많은 코드를 생성합니다. 덕트 테이프가 더 많아서 디자인을 정리하지 않습니다. 예 : Just Mole DateTime.Now already! 당신이 시계 역할의 책임을 맡게하지는 않습니다. 반면에, 기존 코드 더미를 다루는 경우 Moles가 쉬운 옵션 일 수 있습니다. – Gishu

+2

Moles가 Fakes로 대체되었습니다. http://msdn.microsoft.com/en-us/library/hh549175(v=vs.110).aspx visual studio 2012 –

답변

7

나는 당신이있는 시나리오와 같기 때문에, 나는 나의 경험에 대해 논평하고 싶다.

Typemock과 Moles는 둘 다 격리를 염두에두고 있습니다. 특히 성가신 봉인 된 클래스, 비 가상 메서드.

격리 프레임 워크는 위에 언급 된 것과 같이 특히 개발의 후반 단계에 있거나 코드 기반을 거의 제어하지 않는 경우에 필요합니다.

내가 아직 두더지와 함께 발견하지 않은, Typemock의 장점

  • 지원 코드 검사 도구 (Ncover 및 Partcover)
  • 지원 (메소드/속성을)/차단 음부에 확인 [대한 예이]
  • 더 광택까지 제품, 직관적 인 API와 빠른 실행 논쟁의 여지가 나는 두더지 matur 희망

을 (여전히도 잘 작동 몰 덤비는) es 출시 된 제품에 있지만, 그것으로 시작하는 것은 다른 MS Research 프로젝트와 다를 바없는 것 같습니다. 보통 unpolished하지만, 그 유형의 프로젝트의 본질 인 것 같습니다.

+0

정보를 주셔서 감사합니다. – dferraro

7

두더지가 다음 단계로 조롱하고 있다고 생각합니다. 훨씬 강력합니다.

'생산 중'이란 무엇입니까? 두더지는 단위 테스트에만 유용합니다. 성능에 심각한 영향을 미치고 프로덕션 환경에서 안전하지 않은 코드를 허용합니다 (IsAuthorized 함수를 바꿔서 true를 반환하는 방법을 생각해 본 적이 있습니까?).

두더지 질문에 대한 답변이 모두 2008 년과 2009 년

희망에서 사용할 수 있습니다.

+0

감사합니다. 나는 '생산'이라고 썼을 때 Moles를 사용하여 TDD를 사용하여 생산 코드를 작성하는 것을 의미한다 – dferraro

7

몰은 Microsoft의 여러 제품 팀에서 내부적으로 사용됩니다.

1

두더지와 펙스는 패러다임 전환입니다! 그것의 너무 많은 무료 프레임 워크에서 기대할 수 있습니다. 지금까지 나는 크로스 테크놀로지 코드 기반을 가지고 있지 않는 한 그것을 사용하지 않는 어떤 이유도 발견하지 못했다. 그러나 그것이 두더지와 펙스가 확실히 답이다!

1

글쎄, 그 사이에 잘리는 스레드 문제가 거의 없을 수 있습니다. 그것은 당신이 심지어 첨부 된 프로세스에 중단 점을 넣으려고 할 때 그것은 기본적으로 VS 2010 충돌합니다. 그것은 단지 한 대의 컴퓨터에서만 발생하는 것이 아니라 나중에 알려지지 않은 이유로 사라졌습니다.

우회로가 발생하면 디버깅은 코드와 우회로 사이에서 춤을 추어 처음에는 대처하기 어려울 수 있으며 예외적 인 경우 예외가 발생하면 예외가 발생하기 쉽습니다.

자동 생성 테스트 및 PUT - 인터페이스를 기반으로 매개 변수화 된 테스트를 생성하지만 테스트중인 클래스에 따라 생성하려고 시도하는 것처럼 코딩 패턴이 변경되거나 다른 것이 전달되어야하는 메시지를 파악하기위한 목적이 있습니다. , AUTO PUT은 매개 변수화 된 테스트를 활용하는 최선의 방법이 아닐 수도 있습니다.

전반적으로 학습 곡선에 더하여 프레임 워크에는 성숙에 약간의 시간이 걸립니다. 긍정적 측면, 개념은 훌륭하고 유지 비용 (올바르게 구현 된 경우)이며 PEX를 지원하는 팀의 응답 시간은 정말로 긍정적입니다. 때때로 PEX 포럼에서 2 시간 이내에 도움이되는 답변을 얻습니다.

안부 인 Yogesh Pawar

0

"생산"당신이 다음 절대적으로 생산에 사용되는 제품에 그것을 사용하는 의미로하면!

Google은 Google 및 McDonalds와 같은 회사의 매우 중요한 프로젝트에 대한 단위 테스트에서 기능을 분리하기 위해 Moles를 사용하고 있습니다. 물론 단위 테스트는 프로덕션 서버에서 실행되지 않으므로 Moles는 프로덕션 환경에 배포되지 않습니다.