moq (Software)
moq ist eine freie (BSD-Lizenz) Programmbibliothek zum Erstellen von Mock-Objekten für Unit-Tests in .NET-Programmiersprachen.
moq | |
---|---|
Basisdaten | |
Aktuelle Version | 4.16.0[1] |
Programmiersprache | .NET-Programmiersprachen |
Kategorie | Test-Framework |
Lizenz | BSD-Lizenz |
https://github.com/moq/moq4#moq |
Geschichte
moq wurde ursprünglich von Clarius, Manas und InSTEDD entwickelt.[2]
Die Entwickler mit den meisten Commits nennen sich Jeremy Meng, stakx und Daniel Cazzulino.[3]
Verwendung
Das q anstelle von ck im Namen soll auf die Möglichkeit hinweisen, Mock-Objekte mit einer an LINQ orientierten Syntax zu konfigurieren[4]. 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.[5]
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.[6]
Siehe auch
Weblinks
- moq bei Github
Einzelnachweise
- github.com.
-
README.md Who?
(Englisch), abgerufen am 27. September 2017 - Github contributors (Englisch), abgerufen am 27. September 2017
- Daniel Cazzulino's Blog: Linq to Mocks is finally born (Englisch), abgerufen am 27. September 2017
- Peter Vogel: Ensure Consistent Testing with Mock Objects and Moq, Visual Studio Magazine (Englisch), abgerufen am 27. September 2017
- NuGet Packages Gallery (Englisch), abgerufen am 25. August 2020