The art of Unit testing:
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | German English |
Veröffentlicht: |
[Frechen]
mitp
2015
|
Ausgabe: | Deutsche Ausg., 2. Aufl. |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis Inhaltstext Inhaltsverzeichnis |
Beschreibung: | Text in dt. Sprache |
Beschreibung: | 309 S. Ill., graph. Darst. 24 cm, 523 g |
ISBN: | 9783826697128 382669712X |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV042370979 | ||
003 | DE-604 | ||
005 | 20200928 | ||
007 | t | ||
008 | 150219s2015 gw ad|| |||| 00||| ger d | ||
015 | |a 14,N42 |2 dnb | ||
015 | |a 15,A09 |2 dnb | ||
016 | 7 | |a 1059307642 |2 DE-101 | |
020 | |a 9783826697128 |c kart. : EUR 39.99 (DE) (freier Pr.), ca. EUR 41.20 (AT) (freier Pr.), ca. sfr 53.90 (freier Pr.) |9 978-3-8266-9712-8 | ||
020 | |a 382669712X |9 3-8266-9712-X | ||
024 | 3 | |a 9783826697128 | |
028 | 5 | 2 | |a Best.-Nr.: 82669712 |
035 | |a (OCoLC)893441092 | ||
035 | |a (DE-599)DNB1059307642 | ||
040 | |a DE-604 |b ger |e rakddb | ||
041 | 1 | |a ger |h eng | |
044 | |a gw |c XA-DE-NW | ||
049 | |a DE-91G |a DE-11 |a DE-1102 |a DE-M347 |a DE-1043 |a DE-Aug4 |a DE-523 |a DE-384 |a DE-Er8 |a DE-355 |a DE-898 | ||
082 | 0 | |a 005.14 | |
084 | |a ST 233 |0 (DE-625)143620: |2 rvk | ||
084 | |a 004 |2 sdnb | ||
084 | |a DAT 330f |2 stub | ||
100 | 1 | |a Osherove, Roy |e Verfasser |0 (DE-588)142933740 |4 aut | |
240 | 1 | 0 | |a The art of unit testing |
245 | 1 | 0 | |a The art of Unit testing |c Roy Osherove |
250 | |a Deutsche Ausg., 2. Aufl. | ||
264 | 1 | |a [Frechen] |b mitp |c 2015 | |
300 | |a 309 S. |b Ill., graph. Darst. |c 24 cm, 523 g | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
500 | |a Text in dt. Sprache | ||
650 | 0 | 7 | |a Microsoft dot net |0 (DE-588)4645646-6 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Softwaretest |0 (DE-588)4132652-0 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Komponententest |0 (DE-588)4674453-8 |2 gnd |9 rswk-swf |
653 | |a Software-Entwickler für .NET sowie andere Programmiersprachen. | ||
653 | |a C# | ||
653 | |a Typen | ||
653 | |a Testen | ||
653 | |a Klassen | ||
653 | |a Microsoft | ||
653 | |a Vererbung | ||
653 | |a Unit Tests | ||
653 | |a Visual Studio | ||
653 | |a Programmierung | ||
653 | |a Software-Entwicklung | ||
653 | |a testgetriebene Entwicklung | ||
689 | 0 | 0 | |a Komponententest |0 (DE-588)4674453-8 |D s |
689 | 0 | 1 | |a Microsoft dot net |0 (DE-588)4645646-6 |D s |
689 | 0 | |8 1\p |5 DE-604 | |
689 | 1 | 0 | |a Softwaretest |0 (DE-588)4132652-0 |D s |
689 | 1 | 1 | |a Microsoft dot net |0 (DE-588)4645646-6 |D s |
689 | 1 | |8 2\p |5 DE-604 | |
856 | 4 | 2 | |m B:DE-101 |q application/pdf |u http://d-nb.info/1059307642/04 |3 Inhaltsverzeichnis |
856 | 4 | 2 | |m X:MVB |q text/html |u http://deposit.dnb.de/cgi-bin/dokserv?id=4797485&prov=M&dok_var=1&dok_ext=htm |3 Inhaltstext |
856 | 4 | 2 | |m DNB Datenaustausch |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027807237&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
883 | 1 | |8 2\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
942 | 1 | 1 | |c 005.14 |e 22/bsb |
943 | 1 | |a oai:aleph.bib-bvb.de:BVB01-027807237 |
Datensatz im Suchindex
_version_ | 1809771112463073280 |
---|---|
adam_text |
I N
HALTSVERZEICH N IS
VORWORT ZUR ZWEITEN AUFLAGE 13
VORWORT ZUR ERSTEN AUFLAGE 15
EINLEITUNG 17
TEIL I ERSTE SCHRITTE 23
1 DIE GRUNDLAGEN DES UNIT TESTINGS 25
1.1 UNIT TESTING - SCHRITT FUER SCHRITT DEFINIERT 25
1.1.1 DIE BEDEUTUNG GUTER UNIT TESTS 27
1.1.2 WIR ALLE HABEN SCHON UNIT TESTS GESCHRIEBEN (IRGENDWIE) 27
1
.2
EIGENSCHAFTEN EINES GUTEN UNIT TESTS 28
1
.3
INTEGRA TIONSTESTS 29
1
.3.
1 NACHTEILE VON NICHT AUTOMATISIERTEN INTEGRATIONSTESTS IM
VERGLEICH ZU AUTOMATISIERTEN UNIT TESTS 31
1
.4
WAS UNIT TESTS GUT MACHT 33
1
.5
EIN EINFACHES UNIT-TEST-BEISPIEL 34
1
.6
TESTGETRIEBENE ENTWICKLUNG 38
1
.7
DIE DREI SCHLUESSELQUALIFIKATIONEN FUER ERFOLGREICHES TDD 41
1
.8
ZUSAMMENFASSUNG 41
2
EIN ERSTER UNIT TEST 43
2
.1 FRAMEWORKS FUER DAS UNIT TESTING 44
2.
1.1 WAS UNIT-TESTING-FRAMEWORKS BIETEN 44
2
.1
.2
DIE XUNIT-FRAMEWORKS 46
2.2
DAS LOGAN-PROJEKT WIRD VORGESTELLT 47
2.3
DIE ERSTEN SCHRITTE MIT N UNIT 47
2.3
.1 DIE INSTALLATION VON NUNIT 47
2.3.2
DAS LADEN DER PROJEKTMAPPE 49
2.3.3
DIE VERWENDUNG DER NUNIT-ATTRIBUTE IN IHREM CODE 52
2.4
SIE SCHREIBEN IHREN ERSTEN TEST 53
2.4
.1 DIE KLASSE ASSERT 53
2.4.2
SIE FUEHREN IHREN ERSTEN TEST MIT NUNIT AUS 54
2.4.3
SIE FUEGEN POSITIVE TESTS HINZU 55
2.4.4
VON ROT NACH GRUEN: DAS ERFOLGREICHE AUSFUHREN DER TESTS 56
2.4.5
TEST-CODE-GESTALTUNG 57
2.5
REFACTORING ZU PARAMETRISIERTEN TESTS 57
5
HTTP://D-NB.INFO/1059307642
INHALTSVERZEICHNIS
2.6
WEITERE NUNIT-ATTRIBUTE 60
2.6
.1 AUFBAU UND ABBAU 60
2.6.2
AUF ERWARTETE AUSNAHMEN PRUEFEN 64
2.6.3
DAS IGNORIEREN VON TESTS
66
2.6.4
DIE FLIESSENDE SYNTAX VON NUNIT 67
2.6.5
DAS FESTLEGEN DER TESTKATEGORIEN 67
2.7
DAS TESTEN AUF ZUSTANDSAENDERUNGEN DES SYSTEMS STATT AUF
RUECKGABEWERTE 68
2.8
ZUSAMMENFASSUNG 73
TEIL II ZENTRALE METHODEN 75
3
DIE VERWENDUNG VON STUBS, UM ABHAENGIGKEITEN AUFZULOESEN 77
3
.1 DIE STUBS WERDEN VORGESTELLT 77
3.2
DIE IDENTIFIZIERUNG EINER DATEISYSTEMABHAENGIGKEIT IN LOGAN 78
3.3
DIE ENTSCHEIDUNG, WIE LOGANALYZER AM EINFACHSTEN GETESTET
WERDEN KANN 79
3.4
DESIGN-REFACTORING ZUR VERBESSERUNG DER TESTBARKEIT 82
3.4
.1 EXTRAHIERE EIN INTERFACE, UM DIE DAHINTER LIEGENDE
IMPLEMENTIERUNG DURCH EINE ANDERE ERSETZEN ZU KOENNEN 83
3.4.2
DEPENDENCY INJECTION: INJIZIERE EINE FAKE-IMPLEMENTIERUNG
IN DIE ZU TESTENDE UNIT 86
3.4.3
INJIZIERE EINEN FAKE AUF KONSTRUKTOR-EBENE (CONSTRUKTOR INJECTION) 86
3.4.4
SIMULIERE AUSNAHMEN UEBER FAKES 91
3.4.5
INJIZIERE EIN FAKE ALS PROPERTY GET ODER SET 92
3.4.6
INJIZIERE EINEN FAKE UNMITTELBAR VOR EINEM METHODENAUFRUF 93
3.5
VARIATIONEN DER REFACTORING-TECHNIK 101
3.5
.1 DIE VERWENDUNG VON EXTRACT AND OVERRIDE, UM FAKE-RESULTATE
ZU ERZEUGEN 101
3.6
DIE UEBERWINDUNG DES KAPSELUNGSPROBLEMS 103
3.6
.1 DIE VERWENDUNG VON INTERNAL UND [INTERNALSVISIBLETO] 104
3.6.2
DIE VERWENDUNG DES ATTRIBUTS [CONDITIONAL] 104
3.6.3
DIE VERWENDUNG VON #IF UND #ENDIF ZUR BEDINGTEN
KOMPILIERUNG 105
3.7
ZUSAMMENFASSUNG 106
4
INTERACTION TESTING MIT MOCK-OBJEKTEN 107
4
.1 WERTBASIERTES TESTEN VERSUS ZUSTANDSBASIERTES TESTEN VERSUS TESTEN
VERSUS INTERACTION TESTING 107
4.2
DER UNTERSCHIED ZWISCHEN MOCKS UND STUBS 110
4.3
EIN EINFACHES MANUELLES MOCK-BEISPIEL 111
4.4
DIE GEMEINSAME VERWENDUNG VON MOCK UND STUB 114
4.5
EIN MOCK PRO TEST 119
6
INHALTSVERZEICHNIS
4.6
FAKE-KETTEN: STUBS, DIE MOCKS ODER ANDERE STUBS ERZEUGEN 119
4.7
DIE PROBLEME MIT HANDGESCHRIEBENEN MOCKS UND STUBS 121
4.8
ZUSAMMENFASSUNG 122
5
ISOLATION-(MOCK-OBJEKT-)FRAMEWORKS 123
5
.1 WARUM UEBERHAUPT ISOLATION-FRAMEWORKS? 123
5.2
DAS DYNAMISCHE ERZEUGEN EINES FAKE-OBJEKTS 125
5.2
.1 DIE EINFUHRUNG VON NSUBSTITUTE IN IHRE TESTS 126
5.2.2
DAS ERSETZEN EINES HANDGESCHRIEBENEN FAKE-OBJEKTS DURCH
EIN DYNAMISCHES 127
5.3
DIE SIMULATION VON FAKE-WERTEN 130
5.3
.1 EIN MOCK, EIN STUB UND EIN AUSFLUG IN EINEN TEST 131
5.4
DAS TESTEN AUF EREIGNISBEZOGENE AKTIVITAETEN 137
5.4
.1 DAS TESTEN EINES EVENT LISTENERS 137
5.4.2
DER TEST, OB EIN EVENT GETRIGGERT WURDE 139
5.5
DIE AKTUELLEN ISOLATION-FRAMEWORKS FUER .NET 139
5.6
DIE VORTEILE UND FALLSTRICKE VON ISOLATION-FRAMEWORKS 141
5.6
.1 FALLSTRICKE, DIE MAN BEI DER VERWENDUNG VON ISOLATION-
FRAMEWORKS BESSER VERMEIDET 141
5.6.2
UNLESBARER TESTCODE 142
5.6.3
DIE VERIFIZIERUNG DER FALSCHEN DINGE 142
5.6.4
DIE VERWENDUNG VON MEHR ALS EINEM MOCK PRO TEST 142
5.6.5
DIE UEBERSPEZIFIZIERUNG VON TESTS 142
5.7
ZUSAMMENFASSUNG 143
6 WIR TAUCHEN TIEFER EIN IN DIE ISOLATION-FRAMEWORKS 145
6
.1 EINGESCHRAENKTE UND UNEINGESCHRAENKTE FRAMEWORKS 145
6
.1.1 EINGESCHRAENKTE FRAMEWORKS 145
6.1.2
UNEINGESCHRAENKTE FRAMEWORKS 146
6.1.3
WIE PROFILER-BASIERTE UNEINGESCHRAENKTE FRAMEWORKS ARBEITEN 148
6.2
WERTE GUTER ISOLATION-FRAMEWORKS 150
6.3
EIGENSCHAFTEN, DIE ZUKUNFTSSICHERHEIT UND BENUTZERFREUNDLICHKEIT
UNTERSTUETZEN 150
6.3
.1 REKURSIVE FAKES 151
6.3.2
IGNORIERE ARGUMENTE ALS VOREINSTELLUNG 152
6.3.3
UMFANGREICHES FAELSCHEN 152
6.3.4
NICHT STRIKTES VERHALTEN VON FAKES 152
6.3.5
NICHT STRIKTE MOCKS 153
6.4
ISOLATION-FRAMEWORK-DESIGN-ANTIMUSTER 154
6.4
.1 KONZEPT-KONFUSION 154
6.4.2
AUFNAHME UND WIEDERGABE 155
6.4.3
KLEBRIGES VERHALTEN 157
6.4.4
KOMPLEXE SYNTAX 157
6.5
ZUSAMMENFASSUNG 158
7
INHALTSVERZEICHNIS
TEIL III DER TESTCODE 159
7
TESTHIERARCHIE UND ORGANISATION 161
7
.1 AUTOMATISIERTE BUILDS, DIE AUTOMATISIERTE TESTS LAUFEN LASSEN 161
7
.1.1 DIE ANATOMIE EINES BUILD-SKRIPTS 163
7.1.2
DAS ANSTOSSEN VON BUILDS UND INTEGRATION 164
7.2
TESTENTWUERFE, DIE AUF GESCHWINDIGKEIT UND TYP BASIEREN 165
7.2
.1 DER MENSCHLICHE FAKTOR BEIM TRENNEN VON UNIT UND
INTEGRATIONSTESTS 166
7.2.2
DIE SICHERE GRUENE ZONE 167
7.3
STELLEN SIE SICHER, DASS DIE TESTS ZU IHRER QUELLCODEKONTROLLE GEHOEREN 1
68
7.4
DAS ABBILDEN DER TESTKLASSEN AUF DEN ZU TESTENDEN CODE 1
68
7.4
.1 DAS ABBILDEN VON TESTS AUF PROJEKTE 1
68
7.4.2
DAS ABBILDEN VON TESTS AUF KLASSEN 169
7.4.3
DAS ABBILDEN VON TESTS AUF BESTIMMTE METHODEN 170
7.5
QUERSCHNITTSBELANG-INJEKTION 170
7.6
DER BAU EINER TEST-API FUER IHRE APPLIKATION 173
7.6
.1 DIE VERWENDUNG VON TESTKLASSEN-VERERBUNGSMUSTERN 173
7.6.2
DER ENTWURF VON TEST-HILFSKLASSEN UND -HILFSMETHODEN 1
88
7.6.3
MACHEN SIE IHRE API DEN ENTWICKLERN BEKANNT 189
7.7
ZUSAMMENFASSUNG 190
8 DIE SAEULEN GUTER UNIT TESTS 191
8
.1 DAS SCHREIBEN VERTRAUENSWUERDIGER TESTS 191
8
.1.1 DIE ENTSCHEIDUNG, WANN TESTS ENTFERNT ODER GEAENDERT WERDEN . 192
8.1.2
VERMEIDEN SIE LOGIK IN TESTS 197
8.1.3
TESTEN SIE NUR EINEN BELANG 199
8.1.4
TRENNEN SIE UNIT TESTS VON INTEGRATIONSTESTS 200
8.1.5
STELLEN SIE CODE-REVIEWS MIT CODEABDECKUNG SICHER 200
8.2
DAS SCHREIBEN WARTBARER TESTS 202
8.2
.1 DAS TESTEN PRIVATER ODER GESCHUETZTER METHODEN 202
8.2.2
DAS ENTFERNEN VON DUPLIZITAETEN 204
8.2.3
DIE VERWENDUNG VON SETUP-METHODEN IN EINER WARTBAREN
ART UND WEISE 208
8.2.4
DAS ERZWINGEN DER TEST-ISOLIERUNG 211
8.2.5
VERMEIDEN SIE MEHRFACHE ASSERTS FUER UNTERSCHIEDLICHE BELANGE. 217
8.2.6
DER VERGLEICH VON OBJEKTEN 219
8.2.7
VERMEIDEN SIE EINE UEBERSPEZIFIZIERUNG DER TESTS 222
8.3
DAS SCHREIBEN LESBARER TESTS 224
8.3
.1 DIE BENENNUNG DER UNIT TESTS 225
8.3.2
DIE BENENNUNG DER VARIABLEN 226
8.3.3
BENACHRICHTIGEN SIE SINNVOLL 227
8.3.4
DAES TRENNEN DER ASSERTS VON DEN AKTIONEN 228
8.3.5
AUFBAUEN UND ABREISSEN 229
8.4
ZUSAMMENFASSUNG 229
8
INHALTSVERZEICHNIS
TEIL IV DESIGN UND DURCHFUEHRUNG 231
9 DIE INTEGRATION VON UNIT TESTS IN DIE ORGANISATION 233
9.1 SCHRITTE, UM EIN AGENT DES WANDELS ZU WERDEN 233
9.1.1 SEIEN SIE AUF DIE SCHWEREN FRAGEN VORBEREITET 234
9.1.2 UEBERZEUGEN SIE INSIDER: CHAMPIONS UND BLOCKIERER 234
9.1.3 IDENTIFIZIEREN SIE MOEGLICHE EINSTIEGSPUNKTE 235
9.2 WEGE ZUM ERFOLG 237
9.2.1 GUERILLA-IMPLEMENTIERUNG (BOTTOM-UP) 237
9.2.2 UEBERZEUGEN SIE DAS MANAGEMENT (TOP-DOWN) 237
9.2.3 HOLEN SIE EINEN EXTERNEN CHAMPION 238
9.2.4 MACHEN SIE FORTSCHRITTE SICHTBAR 238
9.2.5 STREBEN SIE BESTIMMTE ZIELE AN 240
9.2.6 MACHEN SIE SICH KLAR, DASS ES HUERDEN GEBEN WIRD 241
9.3 WEGE ZUM MISSERFOLG 242
9.3.1 MANGELNDE TRIEBKRAFT 242
9.3.2 MANGELNDE POLITISCHE UNTERSTUETZUNG 242
9.3.3 SCHLECHTE IMPLEMENTIERUNGEN UND ERSTE EINDRUECKE 242
9.3.4 MANGELNDE TEAMUNTERSTUETZUNG 243
9.4 EINFLUSSFAKTOREN 243
9.5 SCHWIERIGE FRAGEN UND ANTWORTEN 245
9.5.1 WIE VIEL ZUSAETZLICHE ZEIT WIRD DER AKTUELLE PROZESS FUER DAS
UNIT TESTING BENOETIGEN? 245
9.5.2 IST MEIN JOB BEI DER QS IN GEFAHR WEGEN DES UNIT TESTING? 247
9.5.3 WOHER WISSEN WIR, DASS UNIT TESTS WIRKLICH FUNKTIONIEREN? 247
9.5.4 GIBT ES DENN EINEN BEWEIS, DASS UNIT TESTING HILFT? 248
9.5.5 WARUM FINDET DIE QS IMMER NOCH BUGS? 248
9.5.6 WIR HABEN EINE MENGE CODE OHNE TESTS: WO FANGEN WIR AN? 249
9.5.7 WIR ARBEITEN MIT MEHREREN SPRACHEN: IST UNIT TESTING DA
PRAKTIKABEL? 249
9.5.8 WAS IST, WENN WIR EINE KOMBINATION AUS SOFT- UND HARDWARE
ENTWICKELN? 250
9.5.9 WIE KOENNEN WIR WISSEN, DASS WIR KEINE BUGS IN UNSEREN
TESTS HABEN? 250
9.5.10 MEIN DEBUGGER ZEIGT MIR, DASS MEIN CODE FUNKTIONIERT:
WOZU BRAUCHE ICH TESTS? 250
9.5.11 MUESSEN WIR CODE IM TDD-STIL SCHREIBEN? 250
9.6 ZUSAMMENFASSUNG 251
10 DER UMGANG MIT LEGACY-CODE 253
10.1 WO SOLL MAN MIT DEM EINBAUEN DER TESTS BEGINNEN? 254
10.2 BESTIMMEN SIE EINE AUSWAHLSTRATEGIE 256
10.2.1 VOR- UND NACHTEILE DER STRATEGIE EINFACHES ZUERST 256
10.2.2 VOR- UND NACHTEILE DER STRATEGIE SCHWIERIGES ZUERST 256
10.3 SCHREIBEN SIE INTEGRATIONSTESTS, BEVOR SIE MIT DEM REFACTORING
BEGINNEN 257
9
INHALTSVERZEICHNIS
10.4
WICHTIGE TOOLS FUER DAS UNIT TESTING VON LEGACY-CODE 258
10.4.
1 ABHAENGIGKEITEN ISOLIEREN SIE LEICHT MIT UNEINGESCHRAENKTEN
ISOLATION-FRAMEWORKS 259
10.4.2
VERWENDEN SIE JMOCKIT FUER JAVA-LEGACY-CODE 260
10.4.3
VERWENDEN SIE VISE BEIM REFACTORING IHRES JAVA-CODES 262
10.4.4
VERWENDEN SIE AKZEPTANZTESTS, BEVOR SIE MIT DEM REFACTORING
BEGINNEN 263
10.4.5
LESEN SIE DAS BUCH VON MICHAEL FEATHERS ZU LEGACY-CODE 264
10.4.6
VERWENDEN SIE NDEPEND, UM IHREN PRODUKTIONSCODE ZU
UNTERSUCHEN 265
10.4.7
VERWENDEN SIE RESHARPER FUER DIE NAVIGATION UND DAS
REFACTORING DES PRODUKTIONSCODES 265
10.4.8
SPUEREN SIE CODE-DUPLIKATE (UND BUGS) MIT SIMIAN UND
TEAMCITY AUF 265
10.5
ZUSAMMENFASSUNG 266
11 DESIGN UND TESTBARKEIT 267
11.1 WARUM SOLLTE ICH MIR GEDANKEN UM DIE TESTBARKEIT IN MEINEM
DESIGN MACHEN? 267
11.2 DESIGNZIELE FUER DIE TESTBARKEIT 268
11
.2
.1 DEKLARIEREN SIE METHODEN STANDARDMAESSIG ALS VIRTUELL 269
11
.2.2
BENUTZEN SIE EIN INTERFACE-BASIERTES DESIGN 270
11
.2.3
DEKLARIEREN SIE KLASSEN STANDARDMAESSIG ALS NICHT VERSIEGELT 270
11
.2.4
VERMEIDEN SIE ES, KONKRETE KLASSEN INNERHALB VON METHODEN
MIT LOGIK ZU INSTANZIIEREN 270
11
.2.5
VERMEIDEN SIE DIREKTE AUFRUFE VON STATISCHEN METHODEN 271
11
.2.6
VERMEIDEN SIE KONSTRUKTOREN UND STATISCHE KONSTRUKTOREN,
DIE LOGIK ENTHALTEN 271
11.2
.7
TRENNEN SIE DIE SINGLETON-LOGIK UND SINGLETON-HALTER 272
11
.3
VOR- UND NACHTEILE DES DESIGNS ZUM ZWECKE DER TESTBARKEIT 273
11
.3
.1 ARBEITSUMFANG 274
N
.3.2
KOMPLEXITAET 274
11
.3.3
DAS PREISGEBEN VON SENSIBLEM IP 274
11
.3.4
MANCHMAL GEHT'S NICHT 275
11
.4
ALTERNATIVEN DES DESIGNS ZUM ZWECKE DER TESTBARKEIT 275
11
.4
.1 DESIGN-ARGUMENTE UND SPRACHEN MIT DYNAMISCHEN TYPEN 275
11
.5
BEISPIEL EINES SCHWER ZU TESTENDEN DESIGNS 277
11.6 ZUSAMMENFASSUNG 281
11
.7
ZUSAETZLICHE RESSOURCEN 282
A TOOLS UND FRAMEWORKS 285
A.I ISOLATION-FRAMEWORKS 285
A.1.1 MOQ 286
A.I.2 RHINO MOCKS 286
A.1
.3
TYPEMOCK ISOLATOR 287
A.1
.4
JUSTMOCK 287
10
INHALTSVERZEICHNIS
A.1
.5
MICROSOFT FAKES (MOLES) 287
A.1
.6
NSUBSTITUTE 288
A.1
.7
FAKELTEASY 288
A.1
.8
FOQ 289
A.1
.9
ISOLATOR++ 289
A
.2
TEST-FRAMEWORKS 289
A
.2
.1 MIGHTY MOOSE (AUCH BEKANNT ALS CONTINUOUSTESTS)
CONTINUOUS RUNNER 290
A
.2.2
NCRUNCH CONTINUOUS RUNNER 290
A
.2.3
TYPEMOCK ISOLATOR TEST RUNNER 290
A
.2.4
CODERUSH TEST RUNNER 290
A
.2.5
RESHARPER TEST RUNNER 291
A
.2.6
TESTDRIVEN.NET RUNNER 291
A
.2.7
NUNIT GUI RUNNER 292
A
.2.8
MSTEST RUNNER 292
A
.2.9
PEX 292
A
.3
TEST-APIS 293
A
.3
.1 MSTEST-API - MICROSOFTS UNIT-TESTING-FRAMEWORK 293
A
.3.
2 MSTEST FUER METRO APPS (WINDOWS STORE) 293
A
.3.3
NUNIT API 294
A
.3.4
XUNIT.NET ' 294
A
.3.
5 FLUENT ASSERTIONS HELPER API 294
A
.3.
6 SHOULDLY HELPER API 294
A
.3.7
SHARPTESTSEX HELPER API 295
A
.3.8
AUTOFIXTURE HELPER API 295
A
.4
IOC-CONTAINER 295
A
.4
.1 AUTOFAC 296
A
.4.2
NINJECT 297
A
.4.3
CASTLE WINDSOR 297
A
.4.4
MICROSOFT UNITY 297
A
.4.5
STRUCTUREMAP 297
A
.4.
6 MICROSOFT MANAGED EXTENSIBILITY FRAMEWORK 297
A
.5
DATENBANKTESTS 298
A
.5
.1 VERWENDEN SIE INTEGRATIONSTESTS FUER IHRE DATENSCHICHT 298
A
.5.
2 VERWENDEN SIE TRANSACTIONSCOPE FUER EIN ROLLBACK DER DATEN 298
A.6 WEBTESTS 299
A
.6
.1 IVONNA 300
A.6.2 TEAM SYSTEM WEB TEST 300
A.6.3 WATIR 300
A
.6.4
SELENIUM WEBDRIVER 300
A
.6.5
COYPU 301
A.6.6 CAPYBARA 301
A
.6.7
JAVASCRIPT-TESTS 301
A
.7
UI-TESTS (DESKTOP) 301
11
INHALTSVERZEICHNIS
A.8 THREAD-BEZOGENE TESTS 302
A.8.I MICROSOFT CHESS 302
A.8.2 OSHEROVE.THREADTESTER 302
A.9 AKZEPTANZTESTS 302
A
.9
.1 FITNESSE 303
A
.9.2
SPECFLOW 303
A
.9.3
CUCUMBER 303
A
.9.4
TICKSPEC 304
A.IO API-FRAMEWORKS IM BDD-STIL 304
STICHWORTVERZEICHNIS 305
12 |
any_adam_object | 1 |
author | Osherove, Roy |
author_GND | (DE-588)142933740 |
author_facet | Osherove, Roy |
author_role | aut |
author_sort | Osherove, Roy |
author_variant | r o ro |
building | Verbundindex |
bvnumber | BV042370979 |
classification_rvk | ST 233 |
classification_tum | DAT 330f |
ctrlnum | (OCoLC)893441092 (DE-599)DNB1059307642 |
dewey-full | 005.14 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.14 |
dewey-search | 005.14 |
dewey-sort | 15.14 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
edition | Deutsche Ausg., 2. Aufl. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>00000nam a2200000 c 4500</leader><controlfield tag="001">BV042370979</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20200928</controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">150219s2015 gw ad|| |||| 00||| ger d</controlfield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">14,N42</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="015" ind1=" " ind2=" "><subfield code="a">15,A09</subfield><subfield code="2">dnb</subfield></datafield><datafield tag="016" ind1="7" ind2=" "><subfield code="a">1059307642</subfield><subfield code="2">DE-101</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9783826697128</subfield><subfield code="c">kart. : EUR 39.99 (DE) (freier Pr.), ca. EUR 41.20 (AT) (freier Pr.), ca. sfr 53.90 (freier Pr.)</subfield><subfield code="9">978-3-8266-9712-8</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">382669712X</subfield><subfield code="9">3-8266-9712-X</subfield></datafield><datafield tag="024" ind1="3" ind2=" "><subfield code="a">9783826697128</subfield></datafield><datafield tag="028" ind1="5" ind2="2"><subfield code="a">Best.-Nr.: 82669712</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)893441092</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)DNB1059307642</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">rakddb</subfield></datafield><datafield tag="041" ind1="1" ind2=" "><subfield code="a">ger</subfield><subfield code="h">eng</subfield></datafield><datafield tag="044" ind1=" " ind2=" "><subfield code="a">gw</subfield><subfield code="c">XA-DE-NW</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-91G</subfield><subfield code="a">DE-11</subfield><subfield code="a">DE-1102</subfield><subfield code="a">DE-M347</subfield><subfield code="a">DE-1043</subfield><subfield code="a">DE-Aug4</subfield><subfield code="a">DE-523</subfield><subfield code="a">DE-384</subfield><subfield code="a">DE-Er8</subfield><subfield code="a">DE-355</subfield><subfield code="a">DE-898</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.14</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 233</subfield><subfield code="0">(DE-625)143620:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">004</subfield><subfield code="2">sdnb</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 330f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Osherove, Roy</subfield><subfield code="e">Verfasser</subfield><subfield code="0">(DE-588)142933740</subfield><subfield code="4">aut</subfield></datafield><datafield tag="240" ind1="1" ind2="0"><subfield code="a">The art of unit testing</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">The art of Unit testing</subfield><subfield code="c">Roy Osherove</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">Deutsche Ausg., 2. Aufl.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">[Frechen]</subfield><subfield code="b">mitp</subfield><subfield code="c">2015</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">309 S.</subfield><subfield code="b">Ill., graph. Darst.</subfield><subfield code="c">24 cm, 523 g</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Text in dt. Sprache</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Microsoft dot net</subfield><subfield code="0">(DE-588)4645646-6</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Softwaretest</subfield><subfield code="0">(DE-588)4132652-0</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Komponententest</subfield><subfield code="0">(DE-588)4674453-8</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Software-Entwickler für .NET sowie andere Programmiersprachen.</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">C#</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Typen</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Testen</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Klassen</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Microsoft</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Vererbung</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Unit Tests</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Visual Studio</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Programmierung</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">Software-Entwicklung</subfield></datafield><datafield tag="653" ind1=" " ind2=" "><subfield code="a">testgetriebene Entwicklung</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Komponententest</subfield><subfield code="0">(DE-588)4674453-8</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Microsoft dot net</subfield><subfield code="0">(DE-588)4645646-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="8">1\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Softwaretest</subfield><subfield code="0">(DE-588)4132652-0</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Microsoft dot net</subfield><subfield code="0">(DE-588)4645646-6</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="8">2\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">B:DE-101</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://d-nb.info/1059307642/04</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">X:MVB</subfield><subfield code="q">text/html</subfield><subfield code="u">http://deposit.dnb.de/cgi-bin/dokserv?id=4797485&prov=M&dok_var=1&dok_ext=htm</subfield><subfield code="3">Inhaltstext</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">DNB Datenaustausch</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027807237&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">2\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="942" ind1="1" ind2="1"><subfield code="c">005.14</subfield><subfield code="e">22/bsb</subfield></datafield><datafield tag="943" ind1="1" ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-027807237</subfield></datafield></record></collection> |
id | DE-604.BV042370979 |
illustrated | Illustrated |
indexdate | 2024-09-10T01:37:07Z |
institution | BVB |
isbn | 9783826697128 382669712X |
language | German English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-027807237 |
oclc_num | 893441092 |
open_access_boolean | |
owner | DE-91G DE-BY-TUM DE-11 DE-1102 DE-M347 DE-1043 DE-Aug4 DE-523 DE-384 DE-Er8 DE-355 DE-BY-UBR DE-898 DE-BY-UBR |
owner_facet | DE-91G DE-BY-TUM DE-11 DE-1102 DE-M347 DE-1043 DE-Aug4 DE-523 DE-384 DE-Er8 DE-355 DE-BY-UBR DE-898 DE-BY-UBR |
physical | 309 S. Ill., graph. Darst. 24 cm, 523 g |
publishDate | 2015 |
publishDateSearch | 2015 |
publishDateSort | 2015 |
publisher | mitp |
record_format | marc |
spelling | Osherove, Roy Verfasser (DE-588)142933740 aut The art of unit testing The art of Unit testing Roy Osherove Deutsche Ausg., 2. Aufl. [Frechen] mitp 2015 309 S. Ill., graph. Darst. 24 cm, 523 g txt rdacontent n rdamedia nc rdacarrier Text in dt. Sprache Microsoft dot net (DE-588)4645646-6 gnd rswk-swf Softwaretest (DE-588)4132652-0 gnd rswk-swf Komponententest (DE-588)4674453-8 gnd rswk-swf Software-Entwickler für .NET sowie andere Programmiersprachen. C# Typen Testen Klassen Microsoft Vererbung Unit Tests Visual Studio Programmierung Software-Entwicklung testgetriebene Entwicklung Komponententest (DE-588)4674453-8 s Microsoft dot net (DE-588)4645646-6 s 1\p DE-604 Softwaretest (DE-588)4132652-0 s 2\p DE-604 B:DE-101 application/pdf http://d-nb.info/1059307642/04 Inhaltsverzeichnis X:MVB text/html http://deposit.dnb.de/cgi-bin/dokserv?id=4797485&prov=M&dok_var=1&dok_ext=htm Inhaltstext DNB Datenaustausch application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027807237&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk 2\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk |
spellingShingle | Osherove, Roy The art of Unit testing Microsoft dot net (DE-588)4645646-6 gnd Softwaretest (DE-588)4132652-0 gnd Komponententest (DE-588)4674453-8 gnd |
subject_GND | (DE-588)4645646-6 (DE-588)4132652-0 (DE-588)4674453-8 |
title | The art of Unit testing |
title_alt | The art of unit testing |
title_auth | The art of Unit testing |
title_exact_search | The art of Unit testing |
title_full | The art of Unit testing Roy Osherove |
title_fullStr | The art of Unit testing Roy Osherove |
title_full_unstemmed | The art of Unit testing Roy Osherove |
title_short | The art of Unit testing |
title_sort | the art of unit testing |
topic | Microsoft dot net (DE-588)4645646-6 gnd Softwaretest (DE-588)4132652-0 gnd Komponententest (DE-588)4674453-8 gnd |
topic_facet | Microsoft dot net Softwaretest Komponententest |
url | http://d-nb.info/1059307642/04 http://deposit.dnb.de/cgi-bin/dokserv?id=4797485&prov=M&dok_var=1&dok_ext=htm http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=027807237&sequence=000001&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT osheroveroy theartofunittesting |
Es ist kein Print-Exemplar vorhanden.
Beschreibung