Es gibt ja schon einige Mocking-Frameworks für .NET, die bekanntesten sind wohl Rhino Mocks und NMock. Aber es gibt auch Neuigkeiten in diesem Bereich.
MoQ (sprich: “Mock-You”) ist ein unglaublich einfaches, stabiles Mocking-Framework. Im Gegensatz zu den anderen Libraries ist es von vornherein mit und für die Features von C# 3.0 (.NET 3.5) geschrieben worden. Für die Verhaltens-Aussagen verwendet es die Expressions von Linq. Diese Herangehensweise ist nicht nur mit Lambda-Ausdrücken schön anzuschauen, sondern erleichtert die Mock-Definition ungemein. So fallen z.B. die “lästigen” und unhandlichen Record/Playback-Ausdrücke weg.
Beispiel gefällig?
var mock = new Mock<ILoveThisFramework>();
mock.Expect(framework => framework.ShouldDownload(It.IsAny<Version>()))
.Callback((Version version) =>
Console.WriteLine("Someone wanted version {0}!", version))
.Returns(true)
.AtMostOnce();
Comments