.NET를위한 최고의 OpenSource Mocking Framework를 찾고 있습니다

StackOverflow https://stackoverflow.com/questions/807646

  •  03-07-2019
  •  | 
  •  

문제

나는 이것이 상당히 주관적이라는 것을 알고 있지만, 나는 조롱에 대해 테스트하고 배우는 데 뛰어 들고 있으며, 내가 어떤 프레임 워크를 사용해야하는지 파악하려고 노력하고 있습니다. 당신이 어떤 것을 추천하고 가장 중요한 것을 말해 줄 수 있다면 당신이 사용한 다른 사람들보다 더 나은 이유 나는 aprpeciate 할 것이다. 또는 누구든지 내가 어디에서 나란히 비교할 수있는 곳을 알고 있다면, 도움이 될 것입니다.

도움이 되었습니까?

해결책

모크 가장 진보 된 것입니다. .NET 3.5 및 C# 3.0의 모든 기능을 사용합니다. 이것은 흥미로울 것입니다 :

다른 팁

나는 Rhino.mocks, Moq & nmock을 사용했습니다. 나는 Moq를 선호했었다.

나는 이제 nsubstitute를 사용하고 있습니다 ... 그리고 그 구문이 MOQ의 구문보다 훨씬 우수하다는 것을 알았으며 당신은 권력을 통해 아무것도 희생하지 않습니다.

나는 다음과 같은 테스트를 작성했었다.

[Test]
public void SomeOtherTest()
{
    //Arrange
    var mock = new Mock<IFoo>();
    var sut = new SystemUnderTest(mock.Object); //never liked doing it this way...
    mock.Setup(m => x.Bar()).Returns("A whole bunch of ceremonial syntax..");
    //Act
    sut.DoSomething();
    //Assert
    mock.Verify(m => m.Baz()); //Baaaaah, more laaaaambdas
}

이제 나는 램다가 아닌 사람을 생각합니다

[Test]
public void NSubTest()
{
    var mock = Substitute.For<IFoo>();
    var sut = new SystemUnderTest(mock); //much nicer!
    mock.Bar().Returns("Look ma! No lambdas!");

    sut.DoSomething();

    mock.Received().Baz();
}

최종 포인트 .. github ...

http://nsubstitute.github.com/

나는 Rhinomocks를 좋아하지만 내가 사용한 유일한 사람입니다.}

이것은 유망한 것 같습니다 :http://code.google.com/p/mocking-frameworks-compare/

나는 또한 Rhinomocks를 사용하고 있습니다. 나는 특히 AAA (배열-액센트) 패턴을 좋아합니다. Rhinomocks를 사용하면 기대치를 쉽게 설정 하고이 패턴을 사용하여 확인할 수 있습니다. 구문은 LAMDAS 및 Chaining을 사용하여 LINQ와 잘 맞습니다. Syntax의 유사성은 이해에 도움이되고 코드를보다 작게 할 수 있습니다. 내가 가지고있는 유일한 문제는 크지 않습니다. 거대하지 않습니다. 방법을 조롱하려면 가상이어야한다는 것입니다. 어떤 의미에서 이것은 당신이 인터페이스에 리팩터를 리팩터링하도록 강요하기 때문에 좋습니다. 그러나 인터페이스가 실제로 필요하지 않으면 통증이 될 수 있습니다. 일부 프레임 워크 클래스를 조롱하는 것이 더 어려워 질 수 있습니다. 클래스 방법을 가상으로 표시하거나 프레임 워크 클래스를 사용하여 대신 조롱하는 래퍼를 만들어이 문제를 해결할 수 있습니다. 나는 이러한 문제가 코뿔소에 고유하다고 생각하지 않습니다.

Richard Banks를 찾을 수 있습니다. 조롱 프레임 워크를 비교하는 일련의 게시물 유용한.

메모: 완전한 공개를 위해 나는 공동 저자입니다. nsubstitute 그것은 비교에서 꽤 호의적으로 나옵니다. :)

나는 Nmock을 사용했고 그것이 훌륭하다고 생각합니다.http://www.nmock.org/

그러나 - 이것은 내가 사용한 유일한 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top