在应用程序启动时插入种子数据失败了我的所有测试用例

时间:2015-05-06 02:20:37

标签: java spring spring-test

在我的Web应用程序中,如果部署了应用程序,则必须在DB中插入一些种子数据(如果不存在)。所以,我已经触发了如下插入数据api

@Component
public class ApplicationContextLoadListener implements ApplicationListener<ContextRefreshedEvent>{

    @Autowired
    private PersistenceFacilitator persistenceFacilitator;
    @Autowired
    private SeedDataService seedDataService;

    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        // generate metadata for entities and schema
        persistenceFacilitator.facilitate();

        //insert seed data
        seedDataService.insertSeedData();
    }

}

工作正常。但问题出现在我用@RunWith(SpringJUnit4ClassRunner.class)执行测试用例时,该事件被触发并尝试插入种子数据,尽管DB尚未就绪。所以,我的所有测试用例都失败了。

有没有办法用spring或任何好的应用程序启动事件来处理这个问题来处理种子数据?

[更新] 根据应用引擎规范测试将数据插入数据库,我必须调用

@Before
public void setup(){
   LocalServiceTestHelper helper = new LocalServiceTestHelper(new LocalDatastoreServiceTestConfig());
   helper.setUp();
}

应用程序上下文加载时尚未准备就绪。无论如何,我不想在运行测试用例时在DB中插入种子数据

0 个答案:

没有答案