| 

.NET C# Java Javascript Exception

4
Hallo. Ich versuche mich an TDD. Klappt soweit auch ganz gut, solange es nur um Sachen geht, die im Speicher ablaufen. Sobald ich externe Ressourcen habe, komme ich in Schwierigkeiten. Das Dateisystem kann ich ja noch gut abstrahieren, aber was mache ich bei Networking, wenn ich viele verschiedene PCs simulieren muss, oder Multithreading? Wie geht so was? Ist TDD da überhaupt geeignet?
23.05.2011
Zulu 41 2
2 Antworten
2
Hallo,

TDD ist auch da geeignet - ein gutes Design der Anwendung vorausgesezt* -> also keine direkten Abhängigkeiten sondern diese (irgendwie) injizieren, usw.
Für die von dir angesprochenen Fälle kannst du mittels Mocks (fast) alles "simulieren".

* TDD fördert also "gutes" Design der Anwendung

Multithreading ist meist ein Implementierungsdetail und braucht somit beim Entwurf noch nicht berücksichtigt werden. Wenn du die Logik erstmals sequentiell umsetzt und alle Test sind grün kannst du dann auf nebenläufig umstellen - normaler TDD-Zylus.
Oder wie hast du das mit Multithreading genauer gemeint?

Schau dir auch mal http://www.artima.com/intv/testdriven.html an - ist ganz interessant.

mfG Gü
23.05.2011
gfoidl 9,4k 3 5
gfoidl 9,4k 3 5
1
Zum Thema Isolation von Programmbestandteilen habe ich mal einen Vortrag bei der Usergroup Leipzig gehalten. Die Materialien dazu findest du hier. Dort werden die Grundlagen der Isolation erklärt und verschiedene Frameworks untersucht.

Sollte dein Problem darin bestehen die Race Conditions nachzustellen die bei verteilten Anwendungen und Multithreading auftreten, helfen im großen Stil Frameworks wie der Test Manager von Microsoft. Dies sind selbst aber auch sehr komplex und brauchen einiges an Arbeit. Ob sich der Aufwand lohnt hängt dabei stark vom Projekt und Risiko ab.

Häufig hilft es aber schon wenn man sich die einzelnen Bestandteile nimmt und prüft ob ein Lock greift oder nicht. Ayende hatte dazu vor Ewigkeiten mal gebloggt. Das Post ist zwar von Ende 2005, könnte dir aber vielleicht einen Denkanstoß geben.
24.05.2011
Hendrik Lösch 1,5k 1 9

Stelle deine Ressourcen-Frage jetzt!