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

Einzelnachweise

  1. github.com.
  2. README.md Who? (Englisch), abgerufen am 27. September 2017
  3. Github contributors (Englisch), abgerufen am 27. September 2017
  4. Daniel Cazzulino's Blog: Linq to Mocks is finally born (Memento des Originals vom 24. September 2017 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/blogs.clariusconsulting.net (Englisch), abgerufen am 27. September 2017
  5. Peter Vogel: Ensure Consistent Testing with Mock Objects and Moq, Visual Studio Magazine (Englisch), abgerufen am 27. September 2017
  6. NuGet Packages Gallery (Englisch), abgerufen am 25. August 2020
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.