(php)unit - bad practices

Post on 26-Jun-2015

237 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Ein kurzer Vortrag über Bad Practices bei Unit-Test. Für den Webmontag Jena 2013-06-17

TRANSCRIPT

(PHP)Unit - Bad Practices

Ansätze für testbaren Code

Erik Witthauer e.witthauer@gmail.com

2013-06-14

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

Wie kann man gutTesten

Ende

1

Agenda

Was ist Unit-Testing?

Bad Practices

Wie kann man gut Testen

11

(PHP)Unit - BadPractices

Erik Witthauer

1 Was istUnit-Testing?

Bad Practices

Wie kann man gutTesten

Ende

2

Was ist Unit-Testing?

Was ist Unit-Testing?

11

(PHP)Unit - BadPractices

Erik Witthauer

1 Was istUnit-Testing?

Bad Practices

Wie kann man gutTesten

Ende

3

Was ist Unit-Testing?

Testen von kleinen Bereichen (Funktionen) im Code

Sicherstellung, dass eine Einheit das erwartete Ergebnisliefert.

11

(PHP)Unit - BadPractices

Erik Witthauer

1 Was istUnit-Testing?

Bad Practices

Wie kann man gutTesten

Ende

4

Was ist Unit-Testing?

Testen von kleinen Bereichen (Funktionen) im Code

Sicherstellung, dass eine Einheit das erwartete Ergebnisliefert.

11

(PHP)Unit - BadPractices

Erik Witthauer

1 Was istUnit-Testing?

Bad Practices

Wie kann man gutTesten

Ende

5

Was ist Unit-Testing?

Testen von kleinen Bereichen (Funktionen) im Code

Sicherstellung, dass eine Einheit das erwartete Ergebnisliefert.

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

2 Bad Practices

Wie kann man gutTesten

Ende

6

Bad Practices

Bad Practices

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

2 Bad Practices

Wie kann man gutTesten

Ende

7

Bad Practices

I Allround-FunktionenI Test-Arten vermischenI Viele interne AbhängigkeitenI Immer 100% erreichenI Alle Möglichkeiten des Frameworks nutzen wollenI Keine DokumentationI Schlechte BezeichnungI Verwirrender CodeI Extra Anweisungen für Test-SzenarienI Zu vieles Mocken

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

2 Bad Practices

Wie kann man gutTesten

Ende

8

Bad Practices

I Allround-Funktionen

I Test-Arten vermischenI Viele interne AbhängigkeitenI Immer 100% erreichenI Alle Möglichkeiten des Frameworks nutzen wollenI Keine DokumentationI Schlechte BezeichnungI Verwirrender CodeI Extra Anweisungen für Test-SzenarienI Zu vieles Mocken

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

2 Bad Practices

Wie kann man gutTesten

Ende

9

Bad Practices

I Allround-FunktionenI Test-Arten vermischen

I Viele interne AbhängigkeitenI Immer 100% erreichenI Alle Möglichkeiten des Frameworks nutzen wollenI Keine DokumentationI Schlechte BezeichnungI Verwirrender CodeI Extra Anweisungen für Test-SzenarienI Zu vieles Mocken

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

2 Bad Practices

Wie kann man gutTesten

Ende

10

Bad Practices

I Allround-FunktionenI Test-Arten vermischenI Viele interne Abhängigkeiten

I Immer 100% erreichenI Alle Möglichkeiten des Frameworks nutzen wollenI Keine DokumentationI Schlechte BezeichnungI Verwirrender CodeI Extra Anweisungen für Test-SzenarienI Zu vieles Mocken

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

2 Bad Practices

Wie kann man gutTesten

Ende

11

Bad Practices

I Allround-FunktionenI Test-Arten vermischenI Viele interne AbhängigkeitenI Immer 100% erreichen

I Alle Möglichkeiten des Frameworks nutzen wollenI Keine DokumentationI Schlechte BezeichnungI Verwirrender CodeI Extra Anweisungen für Test-SzenarienI Zu vieles Mocken

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

2 Bad Practices

Wie kann man gutTesten

Ende

12

Bad Practices

I Allround-FunktionenI Test-Arten vermischenI Viele interne AbhängigkeitenI Immer 100% erreichenI Alle Möglichkeiten des Frameworks nutzen wollen

I Keine DokumentationI Schlechte BezeichnungI Verwirrender CodeI Extra Anweisungen für Test-SzenarienI Zu vieles Mocken

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

2 Bad Practices

Wie kann man gutTesten

Ende

13

Bad Practices

I Allround-FunktionenI Test-Arten vermischenI Viele interne AbhängigkeitenI Immer 100% erreichenI Alle Möglichkeiten des Frameworks nutzen wollenI Keine Dokumentation

I Schlechte BezeichnungI Verwirrender CodeI Extra Anweisungen für Test-SzenarienI Zu vieles Mocken

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

2 Bad Practices

Wie kann man gutTesten

Ende

14

Bad Practices

I Allround-FunktionenI Test-Arten vermischenI Viele interne AbhängigkeitenI Immer 100% erreichenI Alle Möglichkeiten des Frameworks nutzen wollenI Keine DokumentationI Schlechte Bezeichnung

I Verwirrender CodeI Extra Anweisungen für Test-SzenarienI Zu vieles Mocken

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

2 Bad Practices

Wie kann man gutTesten

Ende

15

Bad Practices

I Allround-FunktionenI Test-Arten vermischenI Viele interne AbhängigkeitenI Immer 100% erreichenI Alle Möglichkeiten des Frameworks nutzen wollenI Keine DokumentationI Schlechte BezeichnungI Verwirrender Code

I Extra Anweisungen für Test-SzenarienI Zu vieles Mocken

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

2 Bad Practices

Wie kann man gutTesten

Ende

16

Bad Practices

I Allround-FunktionenI Test-Arten vermischenI Viele interne AbhängigkeitenI Immer 100% erreichenI Alle Möglichkeiten des Frameworks nutzen wollenI Keine DokumentationI Schlechte BezeichnungI Verwirrender CodeI Extra Anweisungen für Test-Szenarien

I Zu vieles Mocken

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

2 Bad Practices

Wie kann man gutTesten

Ende

17

Bad Practices

I Allround-FunktionenI Test-Arten vermischenI Viele interne AbhängigkeitenI Immer 100% erreichenI Alle Möglichkeiten des Frameworks nutzen wollenI Keine DokumentationI Schlechte BezeichnungI Verwirrender CodeI Extra Anweisungen für Test-SzenarienI Zu vieles Mocken

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

3 Wie kann man gutTesten

Ende

18

Wie kann man gut Testen

Wie kann man gut Testen

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

3 Wie kann man gutTesten

Ende

19

Wie kann man gut Testen

I Kleine Funktionen für eine AufgabeI Je Test nur einen Fall beachtenI Keine Abläufe testen

→ Acceptance Test, End-to-End Test, Edge-to-EdgeTest, System Test etc.

I Nicht alle Funktionen des Frameworks nutzen (müssen)

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

3 Wie kann man gutTesten

Ende

20

Wie kann man gut Testen

I Kleine Funktionen für eine Aufgabe

I Je Test nur einen Fall beachtenI Keine Abläufe testen

→ Acceptance Test, End-to-End Test, Edge-to-EdgeTest, System Test etc.

I Nicht alle Funktionen des Frameworks nutzen (müssen)

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

3 Wie kann man gutTesten

Ende

21

Wie kann man gut Testen

I Kleine Funktionen für eine AufgabeI Je Test nur einen Fall beachten

I Keine Abläufe testen→ Acceptance Test, End-to-End Test, Edge-to-EdgeTest, System Test etc.

I Nicht alle Funktionen des Frameworks nutzen (müssen)

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

3 Wie kann man gutTesten

Ende

22

Wie kann man gut Testen

I Kleine Funktionen für eine AufgabeI Je Test nur einen Fall beachtenI Keine Abläufe testen

→ Acceptance Test, End-to-End Test, Edge-to-EdgeTest, System Test etc.

I Nicht alle Funktionen des Frameworks nutzen (müssen)

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

3 Wie kann man gutTesten

Ende

23

Wie kann man gut Testen

I Kleine Funktionen für eine AufgabeI Je Test nur einen Fall beachtenI Keine Abläufe testen

→ Acceptance Test, End-to-End Test, Edge-to-EdgeTest, System Test etc.

I Nicht alle Funktionen des Frameworks nutzen (müssen)

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

3 Wie kann man gutTesten

Ende

24

Wie kann man gut Testen

I Kleine Funktionen für eine AufgabeI Je Test nur einen Fall beachtenI Keine Abläufe testen

→ Acceptance Test, End-to-End Test, Edge-to-EdgeTest, System Test etc.

I Nicht alle Funktionen des Frameworks nutzen (müssen)

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

3 Wie kann man gutTesten

Ende

25

Wie kann man gut Testen

I Abhängigkeiten austauschbar machen → DependencyInjection

I Möglichst keine globalen VariablenI Keine ’Orte’ voraussetzen (Registry o.ä.)I Möglichst nur einen RückgabetypenI Nicht immer 100% erreichen, das wichtigste reichtI Keine Überraschungen im CodeI Keine Tricks für Tests nutzen

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

3 Wie kann man gutTesten

Ende

26

Wie kann man gut Testen

I Abhängigkeiten austauschbar machen → DependencyInjection

I Möglichst keine globalen VariablenI Keine ’Orte’ voraussetzen (Registry o.ä.)I Möglichst nur einen RückgabetypenI Nicht immer 100% erreichen, das wichtigste reichtI Keine Überraschungen im CodeI Keine Tricks für Tests nutzen

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

3 Wie kann man gutTesten

Ende

27

Wie kann man gut Testen

I Abhängigkeiten austauschbar machen → DependencyInjection

I Möglichst keine globalen Variablen

I Keine ’Orte’ voraussetzen (Registry o.ä.)I Möglichst nur einen RückgabetypenI Nicht immer 100% erreichen, das wichtigste reichtI Keine Überraschungen im CodeI Keine Tricks für Tests nutzen

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

3 Wie kann man gutTesten

Ende

28

Wie kann man gut Testen

I Abhängigkeiten austauschbar machen → DependencyInjection

I Möglichst keine globalen VariablenI Keine ’Orte’ voraussetzen (Registry o.ä.)

I Möglichst nur einen RückgabetypenI Nicht immer 100% erreichen, das wichtigste reichtI Keine Überraschungen im CodeI Keine Tricks für Tests nutzen

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

3 Wie kann man gutTesten

Ende

29

Wie kann man gut Testen

I Abhängigkeiten austauschbar machen → DependencyInjection

I Möglichst keine globalen VariablenI Keine ’Orte’ voraussetzen (Registry o.ä.)I Möglichst nur einen Rückgabetypen

I Nicht immer 100% erreichen, das wichtigste reichtI Keine Überraschungen im CodeI Keine Tricks für Tests nutzen

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

3 Wie kann man gutTesten

Ende

30

Wie kann man gut Testen

I Abhängigkeiten austauschbar machen → DependencyInjection

I Möglichst keine globalen VariablenI Keine ’Orte’ voraussetzen (Registry o.ä.)I Möglichst nur einen RückgabetypenI Nicht immer 100% erreichen, das wichtigste reicht

I Keine Überraschungen im CodeI Keine Tricks für Tests nutzen

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

3 Wie kann man gutTesten

Ende

31

Wie kann man gut Testen

I Abhängigkeiten austauschbar machen → DependencyInjection

I Möglichst keine globalen VariablenI Keine ’Orte’ voraussetzen (Registry o.ä.)I Möglichst nur einen RückgabetypenI Nicht immer 100% erreichen, das wichtigste reichtI Keine Überraschungen im Code

I Keine Tricks für Tests nutzen

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

3 Wie kann man gutTesten

Ende

32

Wie kann man gut Testen

I Abhängigkeiten austauschbar machen → DependencyInjection

I Möglichst keine globalen VariablenI Keine ’Orte’ voraussetzen (Registry o.ä.)I Möglichst nur einen RückgabetypenI Nicht immer 100% erreichen, das wichtigste reichtI Keine Überraschungen im CodeI Keine Tricks für Tests nutzen

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

3 Wie kann man gutTesten

Ende

33

Wie kann man gut Testen

The secret in testing is in writingtestable code!Miško Hevery

11

(PHP)Unit - BadPractices

Erik Witthauer

Was istUnit-Testing?

Bad Practices

Wie kann man gutTesten

4 Ende

34

Vielen Dank

top related