Die Dinge begannen einfach mit meinen gefälschten Repositories, die hartcodierte Listen von Entitäten enthielten.ASP.NET MVC Komponententests - Gefälschtes Repository ist unhandlich geworden
Als ich Fortschritte gemacht habe, sind meine geteilten Fake-Repositories aufgebläht. Ich füge ständig neue Eigenschaften und neue Entitäten zu diesen Listen hinzu. Dies macht es extrem schwierig zu warten und es ist auch schwierig zu sehen, was der Test macht. Ich glaube, das ist ein Anti-Pattern namens "General Fixture".
Bei der Untersuchung von ASP.NET MVC-Komponententests habe ich zwei Methoden zur Vorbereitung von Repository-Fixtures kennengelernt, die an die Controller weitergegeben werden.
- erstellen hartcodierte gefälschte Repositories, die unter allen Tests
- Mock Teile der Repositories innerhalb der einzelnen Test geteilt werden
Ich bin versucht Option # 2 oben zu erkunden, aber ich habe gelesen Es ist keine gute Idee, Repositories nachzuahmen, und es erscheint ziemlich entmutigend in den Szenarien, in denen ich einen Controller teste, der mit Sammlungen arbeitet (dh mit Paging-/Sortier-/Filterfunktionen).
Meine Frage an die Community ...
Welche Verfahren zur Herstellung von Repository Vorrichtungen über rudimentäre Beispiele gut funktionieren?
Das waren alles großartige Antworten. Ich benutze Moq, seit ich diese Frage gestellt habe, um Repositories für einzelne Tests nachzubilden, und es funktioniert gut. Ich glaube, es ist sinnvoll, beide Methoden wie von Ihnen vorgeschlagen zu verwenden. Ich finde es auch nützlich, Routinen zu erstellen, die Daten zur Verwendung mit den Mocks generieren - auf diese Weise binde ich keinen Code, um diese Daten zu erzeugen, aber die Daten werden auch nicht geteilt. :) – Mayo