Komponententest in CSLA? Wie? Was?

8

Hat jemand ein Beispiel für Unit-Tests in CSLA? Ich finde es schwierig, TDD mit diesem Framework zu implementieren und habe mich gefragt, ob es dafür einfache Möglichkeiten gibt. Gibt es ein anderes Mock-Framework, das ich neben dem TypeMock-Isolator verwenden könnte, der mein Testobjekt kostenlos erstellt? Bitte, wenn Sie irgendwelche Vorschläge und Beispiele / Beispiele haben, würde ich mich freuen? Danke.

    
Donny 10.02.2012, 11:07
quelle

1 Antwort

8

Ich bin mir nicht sicher, ob ich Ihnen neue Informationen verrate, aber ab CSLA 4 ist es einfacher, Ihre benutzerdefinierten BusinessRules einzeln zu testen, und wenn Sie Repositorys als Datenebene verwenden, können Sie die Repositorys zum Testen des Geschäfts verspotten Objekte zusammen mit dem Frontend mit ihnen. Denken Sie daran, dass Geschäftsobjekte nicht viel mehr als ein Bündel von Objekten mit Eigenschaften sind, in denen Sie Business Rules verwenden sollten, um Geschäftslogik zu implementieren. Diese Geschäftsregeln sind nur Klassen, die Sie ohne Probleme testen können.

Alles hängt davon ab, wie Ihre Infrastruktur ist. Verwenden Sie ein IoC-Muster?

Welche CSLA-Version verwenden Sie?

Verwenden Sie die CSLA ObjectFactory?

Wenn Sie CSLA verwenden, wie es verwendet werden soll, haben Sie statische Factory-Methoden und Sie haben einen nicht-öffentlichen Konstruktor. Wenn Sie diese Eigenschaften innerhalb der BusinessObjects dennoch testen möchten, können Sie einige Optionen auswählen.

  1. Wenn Sie IoC für den DataSlayer (Repositories) verwenden, können Sie diese verspotten und die Business-Objekte testen, indem Sie den IoC mit Mocks und Stubs konfigurieren und in der Testmethode die Factory-Methoden aufrufen und Ihren Test durchführen.

    >
  2. Wenn Sie IoC nicht verwenden, könnten Sie Glück haben, wenn Sie sich für die CSLA ObjectFactory-Lösung entschieden haben - dort können Sie Mocks und Stubs verwenden.

  3. Wenn Sie IoC nicht verwenden und sich nicht für die ObjectFactory entschieden haben, können Sie die Business-Objekte nicht einfach testen. Aber es ist immer noch möglich, indem Sie ein benutzerdefiniertes DataPortal registrieren. Innerhalb des DataPortals können Sie mit Reflection das Geschäftsobjekt erstellen und einen Mock / Stub für das betreffende Geschäftsobjekt auflösen. Es ist nicht einfach, aber machbar.

Tut mir leid, dass ich keine Beispiele habe.

    
rfcdejong 25.02.2012, 21:10
quelle

Tags und Links