2016-04-29 6 views
2

Wie generische Methode zum Einrichten moq Bibliothek in C#moq generische Methode Setup auf Schnittstelle

Interface IA 
{ 
    void foo(); 
    void Get<T>(); 
} 

[Fact] 
public void SetupGenericMethod() 
{ 
    var mock = new Mock<IA>(); 
    mock.Setup(x=> x.Get<It.IsAny<???>()>() 
} 

Jede Hilfe zu diesem verwendet, ist wirklich zu schätzen. Vielen Dank für Ihre Zeit

+1

Mögliches Duplikat von [Mocking generische Methoden in Moq ohne Angabe von T] (http://stackoverflow.com/questions/20072429/mocking-generic-methods-in-moq-without-specifying-t) –

Antwort

0

Beim Testen sollten Sie wissen, was T für den Test sein sollte. Verwenden Sie den Typ für die Einrichtung. Auch anhand der Benennung in Ihrem Beispiel sollte Get<T> etwas zurückgeben.

Interface IA 
{ 
    void foo(); 
    T Get<T>(); 
} 

[Fact] 
public void SetupGenericMethod() 
{ 
    var mockT = new Mock<FakeType>(); 
    var mock = new Mock<IA>(); 
    mock.Setup(x=> x.Get<FakeType>()).Returns(mockT.Object); 
} 

Wenn Sie Mocking generic method call for any given type parameter suchen tatsächlich. Dann bestand die Antwort auf diese Frage darin, auf das Erstellen eines Mocks zu verzichten und stattdessen Stub zu verwenden oder die Schnittstelle selbst zu verspotten, anstatt ein spöttisches Framework zu verwenden.