Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
cocoaheads:testing [2010/11/12 10:31] – [Vielen Dank] mro | cocoaheads:testing [2017/07/20 23:40] (aktuell) – [Unit Testing Cocoa] mro | ||
---|---|---|---|
Zeile 15: | Zeile 15: | ||
Vortrag am 17. März 2010 | Vortrag am 17. März 2010 | ||
- | //The main thing that distinguishes legacy code from non-legacy code is tests, or rather a lack of tests. [[http:// | + | //The main thing that distinguishes legacy code from non-legacy code is tests, or rather a lack of tests. [[https:// |
----- | ----- | ||
Zeile 36: | Zeile 36: | ||
* normalerweise in der gleichen Sprache geschrieben wie der zu testende Code, | * normalerweise in der gleichen Sprache geschrieben wie der zu testende Code, | ||
* nicht Teil des ausgelieferten Programms. | * nicht Teil des ausgelieferten Programms. | ||
+ | |||
== Quelltext Impression | == Quelltext Impression | ||
+ | |||
<code objc> | <code objc> | ||
#import < | #import < | ||
Zeile 63: | Zeile 65: | ||
* eindeutig definiertes Verhalten ([[http:// | * eindeutig definiertes Verhalten ([[http:// | ||
* keine " | * keine " | ||
+ | |||
== Wie geht's prinzipiell? | == Wie geht's prinzipiell? | ||
+ | |||
* Test Framework zur bequemen Entwicklung, | * Test Framework zur bequemen Entwicklung, | ||
* normalerweise pro Logikbaustein (Klasse) eine Testklasse, | * normalerweise pro Logikbaustein (Klasse) eine Testklasse, | ||
Zeile 75: | Zeile 79: | ||
} | } | ||
</ | </ | ||
+ | |||
== Wie geht's mit Cocoa | == Wie geht's mit Cocoa | ||
+ | |||
{{ : | {{ : | ||
Zeile 83: | Zeile 89: | ||
{{ : | {{ : | ||
* ...und jetzt der schwierige Teil: | * ...und jetzt der schwierige Teil: | ||
+ | |||
== Step & Trace | == Step & Trace | ||
Zeile 97: | Zeile 104: | ||
== NSLog | == NSLog | ||
+ | |||
* Terminal: '' | * Terminal: '' | ||
* XCode: '' | * XCode: '' | ||
Zeile 102: | Zeile 110: | ||
== Exkurs: Entwicklungsprozesse | == Exkurs: Entwicklungsprozesse | ||
+ | |||
* [[http:// | * [[http:// | ||
* [[http:// | * [[http:// | ||
Zeile 111: | Zeile 120: | ||
== Was ich vermisse | == Was ich vermisse | ||
+ | |||
* einfachere Projekteinrichtung, | * einfachere Projekteinrichtung, | ||
* benutzerbezogene Einstellungen abschaffen, | * benutzerbezogene Einstellungen abschaffen, | ||
Zeile 117: | Zeile 127: | ||
== Locker bleiben | == Locker bleiben | ||
- | //Don’t stress about unit tests. They are intended as a tool for ensuring good test coverage and memory management. Use them in that way to aid your development process. [[http:// | ||
+ | //Don’t stress about unit tests. They are intended as a tool for ensuring good test coverage and memory management. Use them in that way to aid your development process. [[https:// | ||
* Unit Tests verhindern natürlich [[http:// | * Unit Tests verhindern natürlich [[http:// | ||
Zeile 124: | Zeile 134: | ||
* ein laufendes Programm ist wichtiger als 100% Testabdeckung, | * ein laufendes Programm ist wichtiger als 100% Testabdeckung, | ||
* die ersten Tests für Spaghetti Code können allerdings frustrieren. | * die ersten Tests für Spaghetti Code können allerdings frustrieren. | ||
+ | |||
== Querverweise / Lesetips | == Querverweise / Lesetips | ||
Zeile 151: | Zeile 162: | ||
ein Vortrag bei den [[http:// | ein Vortrag bei den [[http:// | ||
- | |||
{{tag> Vortrag CocoaHeads Unit Test Cocoa XCode}} | {{tag> Vortrag CocoaHeads Unit Test Cocoa XCode}} |