Verwenden Sie Moq, um Erweiterungsmethoden zu verspotten
In der Welt des Unit-Tests spielt Mocking eine entscheidende Rolle bei der Isolierung von Abhängigkeiten und der Gewährleistung der Teststabilität. Beim Umgang mit Erweiterungsmethoden scheinen herkömmliche Simulationstechniken jedoch nicht auszureichen.
Moq, ein beliebtes Mocking-Framework, unterstützt statische Mocking-Methoden, die den Grundstein für Erweiterungsmethoden bilden, nicht direkt. Der Fehler „Ungültige Erwartung für nicht überschreibbares Mitglied“ fasst diese Einschränkung treffend zusammen.
Betrachten Sie das folgende Beispiel:
<code class="language-c#">public class SomeType { public int Id { get; set; } } var ListMock = new Mock<List<SomeType>>(); ListMock.Setup(l => l.FirstOrDefault(st => st.Id == 5)) .Returns(new SomeType { Id = 5 });</code>
Dieser Test schlägt fehl, da Moq die statische Methode FirstOrDefault der List
Einige Alternativen wurden vorgeschlagen:
Diese Methoden bringen jedoch zusätzliche Komplexität mit sich und können in manchen Fällen unpraktisch sein. Berücksichtigen Sie daher unbedingt die Eignung simulierter Erweiterungsmethoden in Ihrer Teststrategie.
Das obige ist der detaillierte Inhalt vonWie kann ich Erweiterungsmethoden mit Moq effektiv simulieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!