Sollte ich mein System unter Testcode umgestalten, um ein Objektdiagramm anstelle jeder einzelnen Abhängigkeit zu akzeptieren?Objektgraph für bessere Testbarkeit
Da ich meine Lösung nicht mit Komponententests gestartet habe, überarbeite ich die Testbarkeit.
ich alle meine Abhängigkeiten durch den Konstruktor Injektion:
var myApp = new MyClass(DependencyOne, DependencyTwo, ...DependencyTen)
Im Konstruktor ich meine Soldaten auf diese Abhängigkeiten bin Initialisierung:
MyClass
{
MyClass(IDependencyOne, IDependencyTwo, ...IDependencyTen)
{
dependencyOne = IDependencyOne;
dependencyTwo = dependencyTwo ;
...
dependencyTen = IDependencyTen;
}
}
Für meine Unit-Tests, kann ich jetzt Mock jede Abhängigkeit:
var mockDep1 = new Mock<IDependencyOne>();
var mockDep2 = new Mock<IDependencyTwo>();
...
var sut = new MyClass(mockDep1.Object, mockDep2.Object..)
Wh Ist das der beste Standard für die Strukturierung von Code, der viele Abhängigkeiten akzeptiert, um testbar zu sein?
Verwenden Sie IoC? Andernfalls können Sie ein testbares Muster verwenden - http://bradwilson.typepad.com/blog/2011/06/the-testable-object-pattern.html – Valentin
danke für den Link. Ich mag das sehr; Was tun Sie jedoch, wenn Sie eine der Abhängigkeiten vortäuschen müssen? Es bricht das Muster –
Werfen Sie auch einen Blick auf die AutoMocking-Systeme wie folgt http://docs.structuremap.net/AutoMocker.htm – Valentin