Index
 
Numerics
 
302 response code (redirect) 73
 
A
 
abstract classes, testing 311
AbstractHttpHandler method (Jetty) 128
AbstractHttpListener class (Jetty) 128
acceptance testing 6, 71, 75?76
Account class 82, 141?145
account transfer testing 141
AccountManager interface
141?143
AccountService.transfer method 141, 143?146
add method 7?8
addAccount method 144
addHandler method 42, 50,
60, 128
addTest method 23
addTestSuite method 24
Administration application 188?189, 216, 240, 261
administrators 188
AdminServlet
Administration application and 216
DataAccessManager and
244?247
refactoring 243?244
testing with Cactus 189?192
agile methodologies 68
Algol 68
alternate path of execution See failures
Ant
book 93
build process management with 92
build system choice with 315
build.properties file 94, 317
buildfiles 91, 93?94, 98,
101?102
cactification 266
cactifywar task 266?271, 329
cactus task 333
cactus testing with 265?274
Cactus/Ant integration module 265?274, 329
configuration of 91
database integration testing and 261
ear task 317
fileset element 100
installing 91?92, 98
Java application building tool 91?92
javac task 94?96
JDBC query invoking with 91
junit jar 98
junit task 96?98, 100?101, 272, 322, 333
junitreport task 98?100
parallel task 321
project XML tag and 93
properties of 94
property elements 93
property task 94
retaining test results with 27
SQL task 266
targets 93, 101?102
taskdef element 273
tasks 93
WAR task 266
web site 91
AOP (Aspect-Oriented Programming) 173
Apache test server 124
APIs (Application Programming Interface)
contract defined 6
methods 81
testing of public 72, 78
verifying behavior of 171
application.xml file 315, 317?318, 331
architecture patterns 41
Aspect Oriented Programming (AOP) 173
AspectJ jar 177
aspectjrt.jar 270
assertEquals method 14, 31, 131, 134, 153, 219, 250
AssertionException 256
AssertionFailedError 159
assertSame 54
Avalon framework 149
 
B
 
BaseTestRunner class 21
BasicDynaClass class 219?220
batchtest element 272
beanutils.RowSetDynaClass 247
Beck, Kent 5, 40, 70, 164,
166, 240
beginIsAuthenticatedNoSession method 181
best practices
business logics and mocks 144
Cactus tests, location of 176
code improvement with testing 60, 62
continuous regression testing 86
exception test readability 62
failure explanation in assert calls 51
packaging and directory locations of test classes 64
refactor long setups when using mock objects 254
refactor test setups and teardowns 299
refactoring and agile methodologies 68
test method naming 50
throw an exception for methods that aren?t implemented 204
unit test one object at a time 48
unit tests and testMethods 53
use TDD to implement The Simplest Thing That Could Possibly Work 197
verification of test failure 192
what to test 56, 145
black box testing 78, 81
body tag 228
BodyContent class 230
BodyTagSupport class 229
bottlenecks, finding with profilers 74
branches, conditional 78
Brunner, John 89
build cactus.xml buildfile 329
build.properties file 111, 317
buildfiles (Ant) 91, 93?94, 97?98, 101?102
Bureau of Extreme Programming 45
business logic unit tests 144, 280
ByteArrayISO8859Writer class (Jetty) 128
 
C
 
C2 Wiki 163
cactification 192, 267, 270?
271, 331
Cactus
Ant integration 266?267, 328
DbUnit integration 271?273
defined 173, 267
directory structure for tests 329
EJB unit tests 328
FileRedirector 212
front ends 179
in-container testing with 166, 173?183
integration with Jetty 175?178
jars 177
JSP testing 217?218, 238,
331, 333
mock objects compared to 213, 216, 237, 278
running tests 174?175
setInitParameter method 211
task 273
taskdef 270
test runners 174?178
testing filters 208?213
testing life cycles 179?180, 230?233
testing taglibs 224?233, 237
testing under Jetty with Eclipse 177
testing under Maven 196
web sites 166, 267, 274
when to use 213?214, 216, 237, 278
XML and 329?331
cactus.jar 270
Cactus/Ant integration module 266?267
cactus-ant integration jar 267
Calculator class 6?7
CalculatorTest program 8?10
callView method 189, 198, 200?201, 242
Carroll, Lewis 282
Centipede 315
class factory refactoring 156
classloaders 10, 12
classpath 94, 97?98, 177, 270, 272
classpath element 96
clean build 92
CLEAN INSERT strategy 264
clean target 101
clearCache method 307
close calls 258
close method 159
Clover 79?80
coarse-grained testing 121
code issues 146
codesmell 62
collaboration tags, testing of 233
collecting parameters 25?27
Common Public License 5
CommonMockStatement 251
CommonPetstoreTestCase 305?306, 309
Commons-HttpClient jar 177
Commons-Logging jar 177
compile targets 95?96, 268
compile.cactustest target 269
compile.test target 319
condition task 321
conditional branches 78
Connection object 248?249, 258
ConnectionFactory class
156?157
Container Managed Persistence (CMP) 282?283
container-related code testing 167
continuous integration 179, 279?280
controller component 40?45
Controller interface 41?42
controller object 50
Controller project 116
countTestCases method 30
Craig, Philip 140
create method 307
createCommandResult method 201
createdb target 267?268
createOrder method 283, 286?287, 290, 293, 297, 303, 314
createOrderHelper method 290, 293
cron job 99
Cunningham, Ward 75
custom taglibs 216
customer
always right 62
 
D
 
data access unit tests
types of 241
data.sql file 266
data.xml 263?264, 270
DataAccessManager class 262
DataAccessManager interface 243, 247
database
access layer interface implementation 243
access unit tests 241, 278
connection pooling 241
connectivity 29, 258, 260, 263?264
constraints 260
features 242, 260
in-memory 278
integration testing 260?264, 279?280
queries 261
referential integrity 260
schema 266?267
triggers 260
unit-testing 240?242, 260?274
DatabaseTestSetup 275?276
DataSource implementation 262
DbUnit
adding jar 273
Cactus integration 272
database data presetting with 263
database testing and 242, 260?261
web site 260
dbunit.jar 270
DefaultAccountManager class 147?149
DefaultController 43, 45, 48,
79, 91
DefaultJMSUtil class 294
DefaultOrderUtil class 294
definitions
acceptance tests 6
API contract 6
component 167
container 167
domain object 47
expectation 159
fixture 29
framework 5
integration tests 6
mock object 141
refactor 52
regression tests 90
stub 121
Test-Driven Development 81
unit of work 5
unit test 6
dependency in software development 120
deployment
automatic 319
descriptors 173, 238, 313, 318, 331
ears 333
targets 319
Design by Contract website 6
design patterns
collecting parameters 27
command pattern 25
composite pattern 25
Factory 134
Interfaces 164
Inversion of Control 42, 149, 155, 164
MVC Model 2 199
observer 28
development cycle 82
diagnostic tests 55
directory structure 63, 105, 111, 315, 329
dist target 101
doAfterBody method 229, 231
document root 125?126
doEndTag method 226, 228
doGet method 201?204, 206, 242, 246
domain object 47?48
doStartTag method 226?228
doubles 7
duplication eliminating 83
dyna beans 218?220
DynaBean class 199
DynaBeans 219, 225?226
dynamic proxies 167
Dynamic Proxy 204, 233, 238
DynaMock
EasyMock compared to 204
testing session beans with 284
writing mocks with 246
DynaPropertiesTag class 225
 
E
 
ear files 315?317, 319?321, 329, 331, 333
EasyMock 167?170, 204
Eclipse
adding jars 177
Cactus testing under Jetty with 177
plug-ins 175, 234
projects 113, 115, 175?177
Quick Fixes 191
test results retention with 27
TestDefaultController, running with 114
web site 112
EJB
defining sample applications 282
fa?ade strategies 283?284
home caching issue 306
limitations of JUnit with 314
local interfaces 328, 334
Redirectors 328
remote interface testing 314
remote interfaces 314
unit test writing with Cactus 328
unit testing with Cactus 329
ejbCreate method 311?312
EJBException class 293
ejb-jar.xml file 315
ejb-local-ref element 330
Electric XML 271
eliminating duplication 83
Emacs 112
embedded servers 124
endCallView method 221
entity beans 282, 310
EntityBean class 310
error conditions 56, 152
error handling 26, 56, 152
errorproperty attributes 322
ErrorResponse class 44, 79
Example TimedTest class 75
exceptions 42, 55?56, 60
execute method 248?250, 257?258, 261
executeCommand method 189, 198, 201, 242
executeQuery method 251
exml.jar 271
expectAndReturn method 293
expectAndThrow method 307
expectations 159, 163, 256
Extreme Programming 5, 197
 
F
 
fail statements 61
failureproperty attributes 322
failures 51, 56?57, 132?133, 258
field getters/setters and absolute classes 311
fileset element 101
filesystem 126
FilterChain 209?210, 212
FilterConfig 209, 212
filters 188, 208, 314
FilterTestCase 182
findAccountForUser method 142?144, 147, 149
findAncestorWithClass method 233
fit framework
web site 75
Fixtures 50
controller object created by default 58
defined 29
de-initializing with tearDown 32
long and complex 254
test case sharing of 53?54
TestSetup 129, 134, 145, 275?276, 297?298
fork attribute 97
formatter element 272
Fowler, Martin 4
framework 4?5
Freeman, Steve 140
functional testing 71?72,
76, 171, 261, 279, 283
 
G
 Galileo 120
Gamma, Erich 112
Gang of Four 5
Generate Getters and Setters feature 311
getBalance method 82
getColumnCount method 254?255
getCommand method 189?191, 197?198, 242?243
getConnection method 249, 258
getContent method (WebClient) 122
getHandler method 44, 47,
60, 79
getInputStream method 136?137, 153
getMetaData method 254?255
getName method 55
getOrder method 287
getOrderHome method 287, 306
getOrderId method 292?293
getParameter method 206
getParent method 233
getRequest method 50
getRequestDispatcher method 220
Giraudoux, Jean 140
green-bar tests 21
 
H
 
haltonerror attribute 97, 272
haltonfailure attribute 96?97, 272
Handler class (Jetty) 127?128
Hashtable 144
Heisenberg Uncertainty Principle 155
Hollywood Principle 42
hsqldb.jar 268
HTML DOM 222
HTTP
clients 40
connection mock objects 150
connections 122?123, 150?151, 181
cookies 181?182
elements 40
headers 40, 181?182, 222
parameters 40, 216, 225
protocols 157
HTTP requests
AdminServlet requirements 189
doGet method entry point for 242
functional unit tests using 73
HTTPContext processing of 126
HTTP-related parameters in 181
interception by the security filter 216
receipt by application 188
using Cactus to add SQL command to 210
web controller acceptance 40
HTTP response 128, 182, 210, 212, 222, 225, 230
HTTP sessions 40, 181, 225
httpclient.jar 270
HttpConnectionFactory class 157
HttpContext 126
HttpContext class 125?126, 129, 132?133
HttpRequest class 128?129
HttpResponse class 127, 133
HttpServer class 125, 129?130, 132
HttpServer class (Jetty) 125
HttpServlet class 166, 168, 242, 245
HttpServletRequest class 166, 168?170, 181, 205
HttpServletResponse class 181, 220
HttpSession class 166, 168?170, 181
HttpSocketListener class (Jetty) 129
HttpUnit class 167, 217,
221, 225
HttpURLConnection class 123, 133?134, 136?138, 153, 157
HttpURLConnection interface 123
Hypersonic SQL 260, 278,
315, 324
 
I
 
IDE (integrated development environments) 56, 112
IEEE 5
IllegalStateException 298
incomplete mock object test 251
in-container testing 166, 173, 178
InitialContext class 285, 297?298, 314
inner classes 48
InputStream class 159
integrated development environments (IDE) 56, 112
integration testing 6, 71?72, 133?134, 283
integration unit testing
comparison with logic and functional unit testing 76, 172
database testing with 242, 260?264, 279?280
defined 76, 172?173
EJBs and 313
errors in 323?325
execution time 179
J2EE testing with 166
mock objects approach compared to 179?180
with Cactus and JUnit 334
interactions between objects 81
introspect method 253
invalid URLs 132?133
Inversion of Control (IOC) 148?149
isAuthenticated method 166, 168?169, 173
isolation testing 134, 140, 150, 164, 217
It Works! return 127?128, 130
 
J
 
J2EE
component unit testing
166?167
containers 260, 315
integration issues, costs of 279
jar proliferation 109
Java Complier (javac) 94?96
Java IDE?s 112
Java Messaging Service (JMS) 283?284
Java Naming and Directory Interface (JNDI) 284?285, 297?307, 314
Java Server Pages (JSP) 188?189, 216?233
Java Virtual Machine (JVM) 96, 320
JAVA_HOME 92
JavaBean 56
javac (Java Compiler) 94?96
Javadocs 14, 23, 30, 92, 102
JBoss
development 320
Hypersonic SQL and 260, 315, 324
installing 317
JNDI and 326
version 3.2.1 273
website 317
jboss.xml file 326
jboss3x element 273
jbossresult.txt file 273
JDBC 91, 120, 141, 145?147, 284
JdbcDataAccessManager class 243?244, 247, 249?250, 261?262
JEdit 112
Jeffries, Ron 148
Jester 80
Jetty
benefits of 124?125, 138, 175
Cactus testing under, with Eclipse 177
embedded server used as 125
handler that returns 127
Handlers 127?128
JettySample class 125
modularity 125
NotFoundHandler 132
opening a URL 125
pros 125
setting up stubs with 124?125
starting and stopping 129
starting from code 125?127
website 124
Jetty classes
AbstractHttpHandler 127?129, 133
ByteArrayISO8859Writer 128
Handler 128?129
HttpContext 125, 129
HttpServer 125
HttpServer class 129
JettySample 125
SocketListener 125, 129
Jetty methods
addHandler 128
handle 128
setContextPath 126
setResourceBase 126
setUpandtearDown 127
JMeter 73
JMS (Java Messaging Service 283?284
JMSException class 293
JMSUtil class 287, 294?295, 303
JMSUtil interface 295, 297
JNDI (Java Naming and Directory Interface) 284?285, 297?307, 314
JNDI API 188
jndi.properties file 297
JNDINames class 326
JNDITestSetup 298
Joyce, James 18
JspRedirector class 224
JSPs (JavaServer Pages) 216
JspTagLifecycle class 228, 230
JspTestCase class 182, 224?225, 227, 230
JSTL 219, 226
JUnit
Assert interface 30
core classes 19?20
core members 19
design goals 15, 24, 30
FAQ 56
features 13
IDEs and 112
JUnit (continued)
life cycle 37?38
motto 20
overview 5
Test interface 23
JUnit classes
BaseTestRunner class 20, 22
TestCase class 13, 18, 25,
28, 31
TestFailure class 25
TestListener interface 27
TestResults class 25
TestRunner class 18, 20, 180
TestSuite class 18, 21?23, 131
JUnit methods
assertEquals method 13?14, 30, 126
JUnit TestClass constructors
version 3.8.1 and later 15
junit.jar file 98
JUnitEE website 314
JUnitPerf website 74
JUnitReport 99
JVM (Java Virtual Machine) 32, 96, 320
 
K
 
Kawasaki, Guy 66
 
L
 
Log interface 147
Log object 146
Log4j 109
LoggerFactory class 146
logging.jar 270
logic unit tests 76, 172, 241
lookup method 287
 
M
 
Mackinnon, Tim 140
Marick, Brian 216
matchAndReturn method 293, 307
Maven
artifacts 109
cactification 192
compared to Ant and Eclipse 90, 112
configuring 103?105
dependency handling 108?109
directory structure 193, 212
goal seeking 102, 109
handling dependent jars 109
HTML reports 196
ID element 105
IDEs and 112
installing 103
JUnit test with 109
JUnit testing with 109
maven-linkcheck-plugin 106
PATH 103
plugins 102?103, 105?106, 109, 192, 196
portability 103
project configuration files 222
project description 104
Project Object Module (POM) 104?108
project.xml 108?109, 196
reports element 108
repositories 109
running Cactus tests 192?193, 212?213
url element 105
version element 105
website 102
website generation with
105?108
welcome page 106?107
workflow 109
maven site 109
MAVEN_HOME 103
maven-changelog-report 106
MavenLJUnit test with 109
mergewebxml attribute 330
Message Driven Beans (MDB) 282?283, 307?310
metadata 173, 218, 238, 313
Method Factory refactoring 155
Mock DataAccessManager 246
mock objects
as probes 159
as Trojan horses 159
benefits of 140
best practices 254
Cactus compared to 213, 216, 237, 278
defined 141
entity beans, testing with
310?312
finding methods to mock 250
HTTP connection and
150?159
in-container testing with 166
indirect calls, discovery of 253
JNDI implementation stragegy 297, 303, 309
making generic 144
making mocks generic 144
message-driven bean testing 308
mocking at a different level 254
practical example 150
pros and cons 144, 170?171
real objects compared to 163
servlet testing with 167?170
session beans 284?285
standard JDK APIs 163
stubs compared to 120, 141, 144
web site 163
when to use 121, 138, 163, 213?214
white box tests and 78, 81
MockAccountManager class 143?144
MockConfiguration class 149
MockConnectionFactory class 157, 160
MockHttpURLConnection class 153
MockInputStream class 159
MockLog class 149
MockMaker 234, 237?238
MockMultiRowResultSet class 252
MockObject JDBC package 247
MockObjects
framework SQL package 280
jar 112
project web site 163
MockSingleRowResultSet class 252
MockURL class 150, 153
monumental methodologies 197
Murphy?s Law 56
MVC Model 2 199
 
N
 
name property 42
Newton 25
 
O
 
objective standards 77
openConnection method 134
optional.jar file 98
Oracle 278
OrderEJB class 310?312
OrderFactory class 295
OrderProcessMDB 314
OrderProcessorMDB class 286
OrderUtil class 286, 303,
306?307
OrderUtil interfaces 294
Orion 171, 273
 
P
 
PageContext class 224, 234, 238
Pascal 68
performance testing 74
Petstore application 314?315
Petstore OrderEJB class 314
PetstoreEJB class 285, 289?291, 295, 303, 314
play-testing 4
POJO (Plain Old Java Object) 212, 283
POM (project object model) 104?108
pre-test state 50
printsummary attribute 97, 272
process method 42, 49
processRequest method 42, 44, 51, 57, 79
production environments, drawbacks in testing 124
profilers 73
project directory structure 265
project object model (POM) 104?108
project.xml file 104
PropertyResourceBundle class 147
ProtocolException 136
proxy redirector 180
pushBody method 230
 
Q
 
QA teams 75
 
R
 
read-only data, factoring 275
red-bar tests 21, 58
redirect 302 response code 73
refactoring 244
best practice 60
class factory, used for 155?159
courage for 68
defined 52
easy method technique for 152?155
extract hierarchy 62
extract method 62
making code unit-testable with 69, 283
Method Factory 155
mock objects used as technique for 146?149
natural solution 245
PetstoreEJB 294
renaming 294
sample 58?59
setDataAccessManager 245
suite of unit tests, benefits for 140
TDD two-step 83
referential integrity 260
reflection and introspection 10
regression testing 86, 90?91
report target 100
Request 209, 212
Request interface 41, 58
RequestDispatcher 208
RequestHandler class 42, 47, 49?50
RequestHandler interface 41
Resin 273
Response 209, 212
response code (302) redirect 73
Response interface 41, 44
results.jsp 218
ResultSet interface 248, 251
RowSetDynaClass 247
run method 30
RuntimeException class 44, 58, 60, 314
 
S
 
Sample servlet 166
Sampling project buildfiles
93, 96
scriptlets 189
Security error page 211
security filter 216
SecurityFilter class 208
SecurityFilter Filter 208
SELECT queries 216
SELECT statement 206, 208, 250
sendToJMSQueue method
286, 303
sendToJMSQueueHelper method 290
sequence diagrams 33
Service Level Agreement (SLA) 188
Servlet class 180
ServletConfig 181
ServletRedirector 179, 181
ServletRedirector class 180
ServletRequest 208
ServletResponse 208
servlets
API 188
containers 125, 189, 223, 273
Pet Store sample 283
remote web resources as 122
sample method for unit testing 166
server side code that calls EJBs 314
testing a method 166
unit testing 188
writing tests for using Cactus 189
ServletTestCase class
Cactus and 180, 182, 217
extending with TestAdminServlet 190, 200
presetting database data with 261?262
ServletUnit 167
SessionBean class 290, 295
setConnection method 250
setContextPath method 125
setDataAccessManager method 245?246
setDoInput method 136
setExpectedCloseCalls method 256
setExpectedQueryString 256
setInitialContextFactoryBuilder method 297?298
setJMSUtil method 293, 297
setOrderFactory method 297
setOrderUtil method 293
setPageContext method 224, 227
setParent method 227, 233
setResourceBase method 125
setUp methods 126?128, 130
setURLStreamHandlerFactory method 134
simulations, using tests to create 57, 133, 150
SLA (Service Level Agreement) 188
SocketListener class 125, 133
software accidents 72
software, testing 71
sortHTMLTable tag 228
SortHtmlTableTag class 228
SQL
commands 210
queries 189, 208?211
statements 208
standard output 8
start target 319
stateless session beans 283
Statement class 248
static modifier 294
stepwise refinement 68
stop target 319
stored procedures 242
strategies/techniques for testing
adjusting build failure criteria 79
Cactus in-container 167,
213?214
choosing an appropriate
260?264
creating a component class 249
creating a wrapper class 249
database access layer 244
exploring alternative 58
fa?ade 283?284
factory class 285, 293,
303, 312
factory method 285, 289, 303, 309, 312
mock 297
mock JNDI 285, 297?307, 309, 312
mock object 140?141, 151, 213, 313
stubbing 120?121, 124, 138
stress/load testing 71?75, 261
Strong, William 188
Struts 40, 77, 199, 219
StubHttpURLConnection class 136
StubHttpURLStreamHandler class 134
stubs
choosing 124?125
compared to mock objects 120, 138,
141, 144
creating sophisticated tests with 64
how to use 121
overview 120?121
pros and cons 121
replacing real code with 122
sample use of 121?124
stubbing connections
134?138
stubbing web server?s resources 126?134
when to use 121, 138
white box testing and 81
StubStreamHandlerFactory class 134
subclasses, replacing with collaborators 156
suite method 34
Swing applications 283
 
T
 
tag life cycle testing method 227?228, 230?233
taglibs (tag libraries) 188, 216
Body tag container life cycle 230
EJB calling with 314
unit testing with Cactus
224?233
unit testing with mock objects 233?237
TagSupport class 225
TDD (Test Driven Development)
automatic documentation 69
avoiding interface overdesign with 44
best practice principle using 60
core tenets 83
defined 81
design process 82
effective adjustment to conventional development cycle 82
elimination of refactoring code in unit testing enabling with 164
initial step of 89
reference book about 164
Test First 189
writing tests before writing code 189
teams, working with 120, 140
tearDown method 126?130
terrific trio 18?19
Test class, writing the 131
Test Driven Development (TDD) See TDD (Test Driven Development)
test runners 11?12, 21, 26?27, 277
TestableJdbcDataAccessManager class 249
TestableOrderEJB 311
TestablePetstoreEJB class 291?292
TestableWebClient class 154
TestAccount 82
TestAccount class 82
TestAccountService 144
TestAccountService class 144
testAddHandler method 52
TestAdminServlet 190, 200
TestAdminServlet class 192, 196, 199, 219
TestAdminServletDynaMock
246
TestAdminServletMO class 205
TestAll class 24
TestCalculator class 13, 34
TestCalculator program 18,
22, 25
TestCalculator walk-through 33
TestCallView 201
TestCase class 61
TestCases 131
collecting results from 25
defined 20
extending from JUnit 13
extracting from JUnit 13
fixtures and 29
for PetStoreEJB 295
grouping for performance 277
how to group 22
objects, adding to Test Suites 18, 25
requirements for 29
running several at once 18
test interface and 23
TestSampleServletIntegration 180
typical 29
working with 28?32
writing the 299?303
TestClass constructors version 3.8.1 16, 22
testCreateOrderOk method 299
testCreateOrderThrowsCreateException method 306
testCreateOrderThrowsException method 306
testCreateThrowsOrderException method 299
TestCustomerAll 277
TestCustomerAll class 277
TestDefaultController class 46, 49?57, 101, 114
Test-Driven Development (TDD)
failures and 192
TestDynaPropertiesMO 234
TestDynaPropertiesTag class 227
TestExceptionHandler class 57
testExecuteCloseConnectionOnException 258
testExecuteOk method 256
TestFailure class 25
testGetBalanceOk method 82
testGetContentOk class 153
testGetContentOk method 154, 158, 161?162
TestGetContentOkHandler class 127, 129
testGetOrderHomeFromCache method 306
test-infected programs 4, 45, 70
testing
as first customer 62
challenges 120
components 167
database access 241
database logic 241
effectiveness 102
fine-grained 164, 173
in isolation 129, 150, 164
inside the container 167
live database 260
outside the container 167
performance turning 275
prime objective 214
strategies 121
TestJdbcDataAccessManagerIC 261
TestJdbcDataAccessManagerIC2 276
TestJdbcDataAccess-ManagerMO1 class 250
TestJdbcDataAccess-ManagerMO3 255
TestOrderEJB 311, 328
TestOrderProcessorMDB 309
TestOrderUtil class 305
TestPetStoreEJB 299
TestPetstoreEJB class 292, 295, 325
TestPetstoreEJB.java file 315
testProcessRequest method 52, 54
TestRequest class 57?58
constructor 59
TestRequestHandler 57
TestResponse class 49, 51, 54
TestResult 25, 27
TestRunner class 18, 20, 180
TestRunners
Cactus and 174, 180
combining with a TestSuite 24
defined 19
defining 21
failures and 25?26
launching tests with 20?21
read-only database data and 277
running graphical and text 11
selecting 20
tests
comparison of 172
composit and command patterns and 25
coverage 67, 79?80
fine-grained 164
folders 64
simulation cases 293
targets 93, 96, 101, 273, 321
types of 71?77, 172
TestSampleServlet 168
TestSampleServletIntegration class 173, 180
TestSetup 128?131, 134, 145, 275?276, 297?299
TestSetup class 129
TestSortHtmlTableTag 230
testSubtract method 23
TestSuite class 18, 21?23, 131
TestSuites
composing tests with 21?25
customizing 23?25
defined 19?20
TestCustomerAll 277
TestJdbcDataAccessManager 276
TestSetup and 128
TestWebClient1 131
TestWebClient class 134, 137, 150, 158
TestWebClient test case 122
TestWebClient1 class 131
TestWebClientSetup1 class 129, 131
TestWebClientSkeleton class 126
TestWebSetup1 class 132
TextPad 112
Tomcat 171, 192, 273
too simple to break 7, 228
tools for analysis and reporting 79
transfer method 144
transparency 123
trap doors 148, 151
trial and error 250
triggers 242
try/catch block 10, 61
try/finally block 258
 
U
 
UML 33
unit of work 5, 7
unit testing
application life cycle 76
as first-class users 146
co-dependent tests, problems with 32
core tenet of 7
defined 6
description of a typical 6
drawbacks of 166
flavors 76
functional 76?77
integration 76
interaction 76
logic 76
need for 66?69
old school 146
running 20
UNIX 91, 103
updateAccount method 144
URL interface unavailability 153
URLConnection interface 123
URLStreamHandler class 134
URLStreamHandlerFactory class 134
 
V
 
verify method 256
version attribute 330
 
W
 
War plugin 222
war target 268
wars, creating 268
web application 222
web servers 124
WebClass methods
getContent 150
WebClient
refactored using ConnectionFactory 156
refactored using MockConnectionFactory 158
testing for failure conditions 132?133
verification for failure conditions 126
WebClient methods
getContent 122, 150, 158
getHttpConnection 154
setHttpURLConnection 154
WebLogic 273
WebRequest class 224
WebResponse class 219, 224, 232
white box testing 76, 78, 81
Windows 91, 103
Wirth, Nikolas 68
writing a failing test 83
 
X
 
XDoclet 282, 318
XP2000 140
xPetstore application
web site 282
XSL stylesheet 99
xUnit 5
 
Y
 
YAGNI 68