Ich möchte einen einfachen Ninject-Provider erstellen, der Moq'd-Instanzen anstelle von konkreten Typen zurückgibt. Bisher habe ich das:
%Vor%Aber das ist alles falsch, da ich nicht weiß, was ich wirklich mache. Jede Hilfe und Codebeispiele wären großartig. Ich will nur die Fähigkeit zu tun:
%Vor%oder etwas in diesem Sinne.
Ich habe herausgefunden, dass ich erreichen kann, was ich will, indem ich Ninjects Methodenbindung verwende:
%Vor%Ich möchte immer noch eine elegantere Art und Weise und ich muss vielleicht Ninject.Moq ausprobieren, wie von Ian vorgeschlagen, aber wenn jemand irgendwelche echten Code-Beispiele hat, wäre das großartig.
Erfüllt die Erweiterung MockingKern , was Sie brauchen? Es verfügt über Moq-, RhinoMocks- und NSubstitute-Varianten und ist auch in NuGet verfügbar.
Meine Lösung dazu verwendet immer nur Folgendes:
MoqProvider
%Vor% Ich registriere dann auch einen IMissingBindingResolver
mit meinem Kernel. Das MoqMissingBindingResolver
erstellt einfach eine neue Bindung an ein MoqProvider
für jeden Dienst, für den noch keine Bindung existiert.
MoqMissingBindingResolver
%Vor% Normalerweise setze ich auch Settings.DefaultScopeCallback
auf Singleton, damit ich meine verspotteten Objekte später bei meinen Tests anfordern kann, wenn ich überprüfen muss, ob bestimmte Aufrufe stattgefunden haben oder nicht, oder das Setup-Verhalten auf Mocks vor der Ausführung des Tests . Die Einrichtung meines Kernels sieht dann so aus:
Ich hoffe, das ist hilfreich.
Tags und Links .net c# dependency-injection moq ninject