TechEvent 2019: The sleeping Power of Data; Eberhard Lösch - Trivadis
MVVM und TDD
1. BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA
HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH
MVVM und TDD:
Testbare ViewModels
Thomas Claudius Huber
@ThomasClaudiusH
2. Thomas Claudius Huber
Developer Week 2016 - Nürnberg - Thomas Claudius Huber2 22.06.2016
Principal Consultant @ Trivadis AG
Cloud Solutions
Developer, Trainer, Architect
Microsoft MVP for Windows Development
Spezialisiert in WPF, Angular 2, C#, .NET, Azure
What else:
Pluralsight-Autor, Buchautor
Fussball, Skaten, Fitness, Gitarre
3. Developer Week 2016 - Nürnberg - Thomas Claudius Huber3 22.06.2016
“Code without tests
is bad code”
Michael Feathers
4. Das MVVM Pattern
Developer Week 2016 - Nürnberg - Thomas Claudius Huber4 22.06.2016
ModelViewModelView
Binding
is using
DataContext
Data
FirstName
LastName
FirstName
LastName
Commands
SaveCommand
TextBox
TextBox
Button
Binding
Binding
5. Vorteile von MVVM
Developer Week 2016 - Nürnberg - Thomas Claudius Huber5 22.06.2016
Wartbarkeit
Separation of Concerns
Testbarkeit
6. Agenda
Developer Week 2016 - Nürnberg - Thomas Claudius Huber6 22.06.2016
1. Unit Testing und TDD basics
2. Testbare ViewModels schreiben
3. Moq, Autofac und mehr
7. Developer Week 2016 - Nürnberg - Thomas Claudius Huber7 22.06.2016
1. Unit Testing und TDD Basics
12. Test Driven Development (TDD)
Developer Week 2016 - Nürnberg - Thomas Claudius Huber12 22.06.2016
Red
GreenRefactor
13. Vorteile von TDD
Developer Week 2016 - Nürnberg - Thomas Claudius Huber13 22.06.2016
Produktiver Code hat testbares Design
Es muss intensiv über die Lösung nachgedacht werden
Eigene Logik lässt sich fertigstellen, auch wenn noch
Abhängigkeiten fehlen
14. «Spikes» in TDD
Developer Week 2016 - Nürnberg - Thomas Claudius Huber14 22.06.2016
«Spikes» sind Experminte, die später
wieder verworfen werden
(zumindest in der Theorie )
21. Developer Week 2016 - Nürnberg - Thomas Claudius Huber21 22.06.2016
Moq, Autofac und mehr
22. Abhängigkeiten mit Moq mocken
Developer Week 2016 - Nürnberg - Thomas Claudius Huber22 22.06.2016
Moq ist via NuGet verfügbar
Funktioniert unter der Haube
mit Dynamic Proxies
Demo
23. Die Anwendung zum Laufen bekommen
Developer Week 2016 - Nürnberg - Thomas Claudius Huber23 22.06.2016
Demo
24. Dependencies mit Autofac injizieren
Developer Week 2016 - Nürnberg - Thomas Claudius Huber24 22.06.2016
Demo
26. DeleteCommand mit MessageBox testen
Developer Week 2016 - Nürnberg - Thomas Claudius Huber26 22.06.2016
Erst ein Spike
Dann ein Test
Und schliesslich ein Interface Demo
28. Summary
Developer Week 2016 - Nürnberg - Thomas Claudius Huber28 22.06.2016
Abhängigkeiten aus ViewModel abstrahieren
ViewModels lassen sich ohne
konkrete Abhängigkeiten testen
Code without tests is bad code