Я не уверен, что не так с вашим классом. Вот выдержка из класса, который делает то, что вы хотите с dbunit и spring 2.5:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={
"testContext.xml"})
@TransactionConfiguration
@Transactional
public class SampleDAOTest {
@Autowired
private DataSource dataSource;
@Autowired
private SampleDAO sampleDAO;
@Before
public void onSetUpInTransaction() throws Exception {
//Populate Test data
IDatabaseConnection dbUnitCon = new DatabaseConnection(DataSourceUtils.getConnection(dataSource), "DATASOURCE");
//read in from a dbunit excel file of test data
IDataSet dataSet = new XlsDataSet(new File("src/test/resources/TestData.xls"));
DatabaseOperation.INSERT.execute(dbUnitCon, dataSet);
}
@Test
public void testGetIntermediaryOrganisation() {
// Test getting a user
User object = sampleDAO.getUser(99L);
assertTrue(object.getValue);
}
}
Одним из преимуществ этого метода является то, что вам не нужно расширять какие-либо классы. Таким образом, у вас все еще может быть своя собственная иерархия для тестов.
Если вы действительно хотите придерживаться текущего метода, а не использовать аннотацию @before, я думаю, вам нужно переопределить приведенный ниже метод и поместить туда свой установочный код.
@Override
public void onSetUpInTransaction() throws Exception {...}
Надеюсь, это поможет