Viele performante und gut skalierbare Architekturen setzen auf asynchrone Verarbeitung. Das Testen des asynchronen Codes stellt Entwickler allerdings vor neue Herausforderungen. Dieser Vortrag bietet Orientierung für einige typischen Fragestellungen. Am Beispiel von NodeJS und Mocha wird gezeigt, wie das Testen beim Einsatz einer nicht-blockierenden Event Loop funktioniert. Anschließend illustriert der Vortrag, wie asynchroner Code mit JUnit auf der JVM – einer klassischen Multithreading-Plattform – getestet werden kann. Insbesondere wird darauf eingegangen, welche Synchronisationsmechanismen genutzt werden können und wie Race Conditions durch Unit Tests aufgedeckt werden können.
Code unter: https://github.com/andreassimon/talk-asynchronen-code-testen
10. Sampling
POST localhost/
CREATED Location: localhost/30
GET localhost/30
NOT FOUND
GET localhost/30
NOT FOUND
GET localhost/30
OK :: 832040
TIMEOUT
18. Fazit
Listening vs. Sampling
Synchronisierungsmechanismen kapseln (und durch Unit-Tests
validieren)
Brian Goetz: "Java Concurrency in Practice"
Nat Pryce, Steve Freeman: "Growing Object-Oriented Software"
https://github.com/andreassimon/talk-asynchronen-code-testen
19. Quagilis
Andreas Simon
Lazarettstr. 9
48147 Münster
Fon +49 (0) 251 - 590 491 55-0
Fax +49 (0) 251 - 590 491 55-9
a.simon@quagilis.de
http://www.quagilis.de
Quality in Agile.