moq ist eine freie (BSD-Lizenz) Programmbibliothek zum Erstellen von Mock-Objekten für Unit-Tests in .NET-Programmiersprachen.

Geschichte moq wurde ursprünglich von Clarius, Manas und InSTEDD entwickelt.README.md Who? (Englisch), abgerufen am 27. September 2017

Die Entwickler mit den meisten Commits nennen sich Jeremy Meng, stakx und Daniel Cazzulino.Github contributors (Englisch), abgerufen am 27. September 2017

Verwendung

Das q anstelle von ck im Namen soll auf die Möglichkeit hinweisen, Mock-Objekte mit einer an LINQ orientierten Syntax zu konfigurieren (Englisch), abgerufen am 27. September 2017. Alternativ dazu stehen auch Setup-Methoden zur Verfügung. Beide Konfigurationsmöglichkeiten arbeiten mit Lambda-Funktionen.

moq kann sowohl mit Interfaces als auch mit Klassen verwendet werden, z. B. für .NET-Framework-Objekte beim Unit-Testen von ASP.NET-MVC-Anwendungen.Peter Vogel: Ensure Consistent Testing with Mock Objects and Moq, Visual Studio Magazine (Englisch), abgerufen am 27. September 2017

Beispiel Ein Mock-Object für das fiktive Interface IVersion wird nach Konfiguration eines Methodenaufrufs mit Parameter- und Rückgabewert auf Zustand und Verhalten getestet.

// Setup mock for notional IVersion interface IVersion version = Mock.Of<IVersion>(x => x.Exists("4.7.142") == true);

// Assert the returned state Assert.IsTrue(version.Exists("4.7.142"));

// Optionally verify mock interaction Mock.Get(version).Verify(x => x.Exists("4.7.142"), Times.Exactly(1));

Dieses Beispiel wurde in C# programmiert und mit Visual Studio 2015 überprüft.

Verbreitung moq wurde seit dem 9. Februar 2011 mehr als 126 Millionen Mal als NuGet-Paket heruntergeladen.NuGet Packages Gallery (Englisch), abgerufen am 25. August 2020

Siehe auch Testgetriebene Entwicklung Mocking Framework

Weblinks moq bei Github

Einzelnachweise

Kategorie:Objektorientierte Programmierung Kategorie:Testsoftware Kategorie:Freie Programmbibliothek