
837
Index
implementation, 504–505
Interacting Test Suites, 232
Interacting Tests solution, 231
motivating example, 505–506
overview, 503–504
of persistent fi xtures, 99–100
refactoring, 506–507
resource leakage solution, 233
when to use, 504
automated unit testing
author’s motivation, xxiv–xxv
fragile test problem, xxxi–xxxii
introduction, xxx–xxxii
B
back door, defi ned, 787
Back Door Manipulation
control/observation points, 66–67
database as SUT API, 336
Expected State Specifi cation, 464
fi xture setup, 333–335
implementation, 330–332
motivating example, 332
overview, 327–328
refactoring, 333
setup, 329
teardown, 330
verifi cation, 329–330
verifi cation using Test Spy, 333
when to use, 328
Back Door Setup
controlling indirect inputs, 128
fi xture design, 59
Prebuilt Fixtures, 430–431
transient fi xtures, 86
Back Door Verifi cation, 130–133
BDUF (big design upfront)
defi ned, 787
design for testability, 65
test automation strategy, 49
Beck, Kent, xxii
sniff test, xxxviii
Test Automation Frameworks,
301
test smells, 9
Testcase Class per Class, 618
xUnit, 57
Behavior Sensitivity
cause of Fragile Tests, 242–243
caused by Overspecifi ed
Software, 246
defi ned, xxxi
smells, 14
behavior smells, 223–247
Assertion Roulette. See
Assertion Roulette
defi ned, 10–11, 788
Erratic Tests. See Erratic Test
Fragile Tests. See Fragile Test
Frequent Debugging. See
Frequent Debugging
Manual Intervention. See
Manual Intervention
overview, 13–15
Slow Tests. See Slow Tests
Behavior Verifi cation
approach to Self-Checking
Tests, 108
examples, 472–473
implementation, 469–471
indirect outputs, 179–180
motivating example, 471–472
overview, 468–469
refactoring, 472
vs. state, 36
test results, 112–114
using Mock Objects. See
Mock Object
using Test Spies. See Test Spy
using Use the Front Door
First, 40