Daedalos JUnit extensions, 329
Darwin, Ian, 227
DBC, 84–86
deadlock, 202
deadlockDetected(), 216
defensive programming, 85–86
definitions, 5–6, 345–351
delayed test refactoring, 152
delegation, 346
delete button testing, 269
delete function testing, 270–271
DeMillo, R. A., 170
dependencies, 48–57
dependency inversion principle, 105, 106, 138, 178
dependent objects, 181
dependent on external resources, 57
deployment database, 192
design by contract (DBC), 84–86
design patterns, 91
Design Patterns (Gamma), 135
developer ego vs. tester ego, 66
developer tests, 5
development process. See software development process
direct state test, 112
distance beween objects, 56, 68
distributed applications, 225–240
distribution mechanisms in Java, 226–227
EJBs, 236–240. See also EJBs
problems of distribution, 225
RMI, 227–236. See also RMI
transparency of distribution, 226
distribution, 225
document templates, 294
DOM, 347
dummy/mock objects, 97–141
adaptor, 135
anonymous class, 127
costs of dummy programming, 139
dependency inversion principle, 105, 106
dummy, defined, 100, 141
dummy (complex example), 100–107
dummy (simple example), 97–100
EasyMock, 114–116
EJB, 236
endoscopic testing, 108–112
exceptions, 117–119
excessive complexity, 140–141
expectation classes, 113
extensions, 107–108
external components, 134–137
factory, 121–122
file dummies, 129–133
generic mock files, 130–133
internal class, 127
JDBC mocks, 193–195
lightweight/heavyweight mocks, 124–129
locality, 97
message registrator, 133
mock, defined, 100, 141
mock generators, 114
mock library, 113–114
MockListeners, 133
persistence objects, 178–181, 193–195
pros/cons, 137–140
replacing helper objects with dummy/mock, 119–122
self-shunt, 128
singleton, 122–124
standardized pattern, 112
state changes, 112
stub, defined, 100
temporary dummy, 140
testing from inside, 108
threshold values, 116–117
uses, 140, 141
Web applications, 250–256
dynamic polymorphism, 155
dynamic reloading, 95
dynamic tests, 6