Ich habe Probleme, zu überprüfen, dass der Schein von IInterface.SomeMethod<T>(T arg)
mit Moq.Mock.Verify
aufgerufen wurde.
Ich kann überprüfen, ob die Methode auf einer "Standard" -Schnittstelle aufgerufen wurde, entweder mit It.IsAny<IGenericInterface>()
oder It.IsAny<ConcreteImplementationOfIGenericInterface>()
, und ich habe keine Probleme, einen generischen Methodenaufruf mit It.IsAny<ConcreteImplementationOfIGenericInterface>()
zu verifizieren, aber ich kann a nicht verifizieren Die generische Methode wurde mit It.IsAny<IGenericInterface>()
aufgerufen - sie besagt immer, dass die Methode nicht aufgerufen wurde und der Komponententest fehlschlägt.
Hier ist mein Komponententest:
%Vor%Hier ist meine Klasse im Test:
%Vor% Hier ist mein IServiceInterface
:
Und hier ist meine Schnittstelle / Klasse Vererbungshierarchie:
%Vor%Es ist ein bekanntes Problem in der Moq 4.0.10827, die eine aktuelle Release-Version ist. Siehe diese Diskussion auf GitHub Ссылка . Ich habe seinen Dev-Zweig heruntergeladen, kompiliert und referenziert und nun ist dein Test bestanden.
Ich werde es flügeln. Da GenericMethod<T>
erfordert, dass ein T-Argument angegeben wird, wäre Folgendes möglich: