Wie erstelle ich einen Moq-Provider für Ninject?

8

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.

Aktualisieren

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.

    
Chev 29.07.2011, 18:25
quelle

2 Antworten

8

Erfüllt die Erweiterung MockingKern , was Sie brauchen? Es verfügt über Moq-, RhinoMocks- und NSubstitute-Varianten und ist auch in NuGet verfügbar.

    
Ian Davis 29.07.2011, 19:23
quelle
0

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:

%Vor%

Ich hoffe, das ist hilfreich.

    
s3raph86 13.01.2017 02:03
quelle