Java Reference
In-Depth Information
protected void runTemplateTest(TemplateWorker worker)
throws Exception {
IDataSet setupDataSet = getReplacedDataSet(worker.getSetupDataSet(),
worker.getId() );
DatabaseOperation.CLEAN_INSERT
.execute(dbunitConnection, setupDataSet);
worker.doIt();
String comparisonDataSetName = worker.getAssertDataSet();
if ( comparisonDataSetName != null ) {
IDataSet expectedDataSet = getReplacedDataSet(comparisonDataSetName,
worker.getId());
IDataSet actualDataSet = dbunitConnection.createDataSet();
Assertion.assertEquals( expectedDataSet, actualDataSet );
}
}
C
D
E
F
@Test
public void testGetUserById() throws Exception {
final long id = 42; // value here does not matter
TemplateWorker worker = new TemplateWorker() {
public void doIt() throws Exception {
User user = dao.getUserById(id);
assertUser( user );
}
public String getSetupDataSet() { return "/user-token.xml"; }
public String getAssertDataSet() { return null ; }
public long getId() { return id; }
};
runTemplateTest(worker);
}
@Test
public void testAddUser() throws Exception {
TemplateWorker worker = new TemplateWorker() {
private long id = -1;
public void doIt() throws Exception {
User user = newUser();
id = dao.addUser(user);
assertTrue(id>0);
}
public String getSetupDataSet() { return "/empty.xml"; }
public String getAssertDataSet() { return "/user-token.xml"; }
public long getId() { return id; }
};
runTemplateTest(worker);
}
}
We start by defining the interface TemplateWorker B , which will be implemented as
an inner class by the test cases that use the template method. In the template method
runTemplateTest C , notice that D , E , and F match the three workflow steps
described previously.
In the first test method, testGetUserById() , it isn't necessary to check the data-
base state after this test case is run, so null is returned G .
G
H
Search WWH ::




Custom Search