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