Frage

Ich weiß, das ziemlich subjektiv, aber ich bin Tauchen in Tests und das Lernen über spöttisch, und ich versuche, den Rahmen Figur, die ich verwenden soll. Wenn Sie mir sagen könnten, welche Sie recommed und vor allem Warum ist es besser als andere, die Sie verwendet haben, würde ich aprpeciate. Oder wenn jemand weiß, wo ich bekommen kann einen Side-by-Side-Vergleich, die Aslo wäre hilfreich.

War es hilfreich?

Lösung

Moq ist am weitesten fortgeschritten. Es nutzt alle Features von .NET 3.5 und C # 3.0. Dies wäre interessant:

Andere Tipps

Ich habe Rhino.Mocks, Moq & NMock verwendet. Früher habe ich Moq bevorzugen.

Ich verwende jetzt NSubstitute ... und stellte fest, dass die Syntax, die der moq ist weit überlegen war und man nichts im Wege der Macht opfern.

Ich habe Tests zu schreiben wie folgt aus:

[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
}

Jetzt schwelge ich in der nicht-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();
}

Schlusspunkt für .. its auf Github ...

http://nsubstitute.github.com/

Ich mag RhinoMocks, aber es ist die einzige, die ich verwendet habe:}

Das sieht vielversprechend aus: http://code.google.com/p/mocking-frameworks-compare/

Ich verwende auch RhinoMocks. Besonders gefällt mir die AAA (Arrange-Act-Assert) Muster. RhinoMocks macht es einfach, die Erwartungen einzurichten und überprüfen sie dieses Muster. Die Syntax verwendet lambdas und Verkettung, die mit LINQ sehr gut in paßt. Die Ähnlichkeit in der Syntax hilft mit Verständnis und ermöglicht es der Code kompakter zu sein. das einzige Problem, das ich mit ihm haben, und es ist nicht sehr groß ist, dass, um eine Methode zu verspotten es virtuell sein muss. In gewisser Weise ist dies gut, weil es „Kräfte“ Sie Schnittstellen Refactoring, aber es kann ein Schmerz, wenn eine Schnittstelle nicht wirklich erforderlich ist. Es kann einige Framework-Klassen erschweren spöttisch. Sie können durch Markieren Klassenmethoden virtuell oder mit Framework-Klassen dieses Problem umgehen, einen Wrapper erstellen, die Sie stattdessen verspotten. Ich glaube nicht, diese Fragen zu RhinoMocks einzigartig sind.

Sie könnten Richard Banks' Serie finden von Beiträge spöttischen Frameworks zu vergleichen nützlich.

Hinweis : Im Interesse einer vollständigen Offenlegung, ich bin Mitautor NSubstitute die kommt recht günstig im Vergleich heraus. :)

Ich habe verwendet NMock und denke, es ist ausgezeichnet. http://www.nmock.org/

Allerdings - das ist die einzige, die ich verwendet habe,

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top