2012-09-10 2 views
5

우리는 .net 4.0 프레임 워크에서 실행되는 일부 레거시 코드의 테스트 적용 범위를 늘리는 데 도움이되는 새로운 Fakes framework을 사용하고 있습니다. 불행히도, 우리는 .net 4.5로 업그레이드 할 수없는 것처럼 보입니다. .net 4.0 (및 VS2012)에서 Fakes 프레임 워크를 사용할 수 없다는 것과 이제 지원되지 않는 Moles 프레임 워크를 대신 사용해야 할 필요가 있다는 말이 맞을까요?Microsoft Fakes and .Net 4.0

답변

4

나는 일반적으로 두더지의 팬이 아니지만 레거시 코드를 테스트하는 데 도움이 될 수 있습니다. 다음은 고려할 수있는 몇 가지 다른 도구입니다. 그러나 심각하게, 이런 유형의 프레임 워크는 옳지 않습니다. 올바른 방법은 테스트 할 수있는 코드와 리팩터 레거시 코드를 작성하는 것입니다. (이것이 항상 쉽지는 않을지는 몰라요.) 여기 http://blog.pluralsight.com/2012/05/22/solid-code-for-solid-reasons/

  • 는 몇 가지에있다 : 나는 몰 여기서 논의로 좋은 코드를 작성하도록 강요한다는 것입니다 단위 테스트의 주요 이점 중 하나, 못된 생각 고려 :

    • Moles (Predecssor MS에 페이크 프레임 워크)
    • JustMock (이하 TypeMock보다 더 비싼,하지만 여전히 비싼)
    • TypeMock (Rediculously 비싼!)

    가 포함 확실하지, 또한 JustMock의 무료 라이트 버전이있다.

+0

감사합니다. 우리는 이러한 도구가 최후의 수단임을 깨닫고 처음부터 작성된 코드는 테스트를 염두에두고 적절하게 관리되는 종속성을 염두에두고 설계됩니다. 하지만 우리가 전체 코드베이스를 리팩터링하는 것은 소극적이지 않습니다. 그래서 우리는 이러한 유형의 격리 프레임 워크를보고 있습니다. – gmancoll

0

나는 이것이 당신이 요구 한 것이 아니라는 것을 알고 있지만 non-microsoft 조롱 프레임 워크를 고려/평가 한 적이 있습니까?

Rhino.Mocks은 믿을 수 없을만큼 널리 사용되고 견고하며 FakeItEasygrowing in adoption입니다. 문서가 풍부하지는 않지만 엄청나게 직관적이며 사용하기 쉽습니다.

+0

우리가 기존 코드를 다루므로, 대부분의 종속성은 조롱이 옵션이 될만큼 잘 추상화되지 않았습니다 (여기서 우리는 Moq을 사용하고 있습니다). 그래서 우리는 Moles/Fakes의 우회 기능이 필요합니다. – gmancoll

0

저는 가짜 테스트 3.5 어셈블리입니다. 가짜 테스트는 4.5 용으로 컴파일됩니다. 3.5 용으로 컴파일하려고하지는 않았지만 배포 용 컴퓨터에서 실행하려고하지 않았습니다.

0

Microsoft Fakes Framework는 Visual Studio 2012 자체와 동일한 .NET 버전을 지원합니다. 여기에는 4.5, 4.0, 3.5, 3.0 및 2.0 버전이 포함됩니다.

2

Visual Studio 2012 Ultimate 또는 Premium Update 2를 사용하여 Microsoft Fakes를 사용할 수 있고 단위 테스트는 이전 버전의 .NET Framework를 대상으로 할 수 있습니다.