2013-01-04 185 views
0

我正在为我的其余控制器创建集成测试用例。我想使用dbunit来测试数据库层。使用DB单元进行弹簧控制器集成测试

这里是我的测试类框架设置

@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; 
    } 
} 

伙计们,请帮助我找到问题的原因和解决方案。

感谢, 法赫德拉乌夫

回答

0
initializationError(ua.com.stormlabs.geotagger.web.controllers.rest.LocationServiceControllerIntegrationTest): 
org/dbunit/operation/DatabaseOperation 

这看起来像一个类路径错误。我怀疑整个错误是ClassNotFound:org/dbunit/operation/DatabaseOperation

您可以检查以确保dbunit及其所有依赖项都在类路径上吗? DBUnit具有相当多的依赖关系。

+0

是的,你是对的,事实证明我错过了pom.xml文件中的一些依赖关系。我更新了它并且测试运行良好。 谢谢马克。 –