Ich versuche, meine Unit-Tests von ArcGIS zu ändern, und fangen mit Mocks (ich benutze Rhino).
Als ich anfing, die Tests zu schreiben, bemerkte ich, dass ich anfangen musste, eine Menge Objekte zu verspotten, und viele Methoden anwendete, damit auch nur ein Test bestanden wurde.
Zum Beispiel - mein Controller bekommt zuerst ein RelationshipClass
(so ich brauche die IWorkspace
und die zurück IRelationshipClass
Stub), dann bekommt auch einen IFeature
(a Stummel) und schließlich ruft stubRelClass.GetRelatedObjects(stubFeature)
, ein ISet
anderen IFeatures
zurückzukehren.Unit Test Geruch
Ist es normal, so viele Objekte und Methoden zu stubben, nur um sie passieren zu lassen? Ich fühle auch wie ich muss wirklich über den Code (yeah - ich weiß, ich hätte die Tests zuerst geschrieben werden, ich versuche immer noch dies), um herauszufinden, was als nächstes auszugeben, und was ich zurückgeben sollte .
Ich habe auch Probleme mit Mocking com-Klassen, die mehr als eine Schnittstelle implementieren. Im Produktionscode I QI sie zwischen den Schnittstellen. Wie kann ich einen Mock erstellen, der beide Schnittstellen zur Laufzeit implementiert?
Über ein Objekt einzuführen, die die tiefen Ebenen schneidet - es wird „retten“ mich von ein paar mehr Objekte spöttischen (da diese Aufgabe für sie decken), aber ich würde müssen noch über die verspotten gleiche Menge an Methoden, oder? Oder mache ich das falsch? –
Der Punkt besteht nicht darin, "dich zu retten" davor, mehr Objekte zu verspotten. Der Punkt ist, dass der Test versucht, Ihnen zu sagen, dass da ein fehlendes Konzept drin ist, deshalb ist es so kompliziert. –