ich habe noch nicht mit EF gearbeitet und kann dir deshalb leider nicht
konkret weiterhelfen, aber einen Workaround aus der Kategorie "every problem
in computer science can be solved by another layer of abstraction" anbieten:
Verstecke alle EF-Querys hinter einem IRepository (welches sich einfach
mocken lässt).
Beispielsweise:
public override bool CanLogOn(string winNTName)
{
return repository.FindUserByName(Win32Username) != null;
}
HTH,
Alex
--
Alexander Groß
http://therightstuff.de/
würde ich auch so machen. Zur Ergänzung: die konkreten Repositories
testest du am besten gegen eine echte Datenbank. Das geht pro Test wie
folgt:
- Datenbank leeren und Schema neu aufbauen
- Testdaten schreiben (da deine Objekte gemappt sind kanns du das
Schreiben der Testdaten mit dem EF machen)
- Test ausführen
Grüße
Stefan Lieser
> Dann gibts wohl oder übel ein IUserRepository welches alle Aufrufe
> kapselt. Das ist Io.
Die Kapselung der Datenzugriffe in einem Repository ist eh best
practice.
> 1) Kann ich extension methods mit Rhino Mocks überhaupt testen (irgend
> sowas habe ich bei dir im Blog gefunden Stefan... glaube ich finds
> aber nicht mehr)
Extension Methods sind syntactic sugar und werden vom Compiler in
statische Methoden übersetzt. Statische Methoden können nicht von
Rhino Mocks ersetzt werden. Dies liegt an der Form der
Implementierung: Rhino verwendet Proxy Klassen. Da statische Methoden
nicht überschrieben werden können geht das rein prinzipbedingt nicht.
> 2) Eine völlig andere Frage(sorry): Ich habe ein Lastenheft vom Kunden
> mit ungefähr 100 punkten. Diese würde ich gerne in Acceptance tests
> umformen. Wie macht ihr das? Ein Unit Test Projekt wo ihr die
> Lastpunkte abbildet??
Ein eigenständiges Projekt hört sich schonmal nicht verkehrt an. Für
die Umsetzung kannst du BDD-style Tests verwenden. Mit dem daraus
erstellten Report kannst du dann zum Kunden gehen und klären, ob alles
richtig ist. Eine Alternative sind Fit/Fitnesse Tests.
Grüße
Stefan
Welche Notwendigkeit hast du denn, extension methods zu mocken?
> Aber was sind FIT Tests??
> Wie sieht das konkret aus? Ich habe quasi ein Excel File wo ich Inputs
> und erwartete Outputs definiere und die werden validiert??
Schau mal http://fitnesse.org/FitNesse.UserGuide.TwoMinuteExample an.
Mit Fitnesse hast du ein Wiki in welches du die Tests schreibst. Dazu
kommt etwas Gluecode um die Tabellen mit deinem SUT zu verbinden.
Grüße
Stefan