Spring控制器与DB单元的集成测试
我正在为我的rest控制器创建集成测试用例。我想使用dbunit来测试数据库层 这是我的测试类框架设置Spring控制器与DB单元的集成测试,spring,jakarta-ee,junit,integration-testing,dbunit,Spring,Jakarta Ee,Junit,Integration Testing,Dbunit,我正在为我的rest控制器创建集成测试用例。我想使用dbunit来测试数据库层 这是我的测试类框架设置 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes= {IntegrationTestApplicationContext.class}) @TestExecutionListeners({ DependencyInjectionTestExecutionListener.class,
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes= {IntegrationTestApplicationContext.class})
@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class,
DbUnitTestExecutionListener.class })
public class TestServiceControllerIntegrationTest {
private MockMvc mockMvc;
@Test
public void testSearch(){
}
}
运行此代码会导致此错误
Results :
Tests in error:
initializationError(test.controllers.rest.TestServiceControllerIntegrationTest):
org/dbunit/operation/DatabaseOperation
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0
下面是IntegrationTestApplicationContext.java的外观
@Configuration
@PropertySource("classpath:application.properties")
public class IntegrationTestApplicationContext {
@Resource
private Environment environment;
@Bean
public DataSource dataSource() {
BoneCPDataSource dataSource = new BoneCPDataSource();
dataSource.setDriverClass(environment.getRequiredProperty("jdbc.driverClassName"));
dataSource.setJdbcUrl(environment.getRequiredProperty("jdbc.url"));
dataSource.setUsername(environment.getRequiredProperty("jdbc.username"));
dataSource.setPassword(environment.getRequiredProperty("jdbc.password"));
return dataSource;
}
}
伙计们,请帮我找到问题的原因和解决方案
谢谢,
法哈德·劳夫
initializationError(ua.com.stormlabs.geotagger.web.controllers.rest.LocationServiceControllerIntegrationTest):
org/dbunit/operation/DatabaseOperation
这看起来像是类路径错误。我怀疑整个错误是ClassNotFound:org/dbunit/operation/DatabaseOperation
您可以检查以确保dbunit及其所有依赖项都在类路径上吗?DBUnit有很多依赖项。是的,你是对的,原来pom.xml文件中缺少一些依赖项。我更新了它,测试运行良好。谢谢你,马克。