寻找.net的最佳开源模拟框架

Mic*_*cah 5 .net mocking

我知道这是相当主观的,但我正在深入测试和学习嘲笑,我正在试图找出我应该使用哪个框架.如果你能告诉我你推荐哪些,最重要的是为什么它比你用过的其他人更好,我会说的.或者,如果有人知道我可以在哪里进行并排比较,这也是有帮助的.

eu-*_*-ne 7

Moq是最先进的.它使用.NET 3.5和C#3.0的所有功能.这很有趣:


Jim*_*ger 7

我使用过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
}
Run Code Online (Sandbox Code Playgroud)

现在我陶醉于非lambda-eryness

[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();
}
Run Code Online (Sandbox Code Playgroud)

最后一点..它在github上......

http://nsubstitute.github.com/