如何针对不同的测试使用不同的数据源

我试图找出一种方法来针对内存数据库(H2)和其他人对我们的Oracle测试数据库执行某些集成测试。 也许是我有限的测试写作经验,但似乎有些测试(如搜索查询)更适合在内存中,因为我可以控制查询的数据集,而其他人(如测试事务/持久性)将受益于违背我们的REAL模式和DB(Oracle)。

我可以考虑2种方法,但不知道如何实现:

  • 添加一个新的测试阶段,以便我可以进行集成测试in-mem和集成测试(使用oracle),并在不同的阶段运行不同的测试,并针对不同的DB配置每个测试阶段
  • 让每个测试控制使用哪个数据源
  • 我更喜欢第一个更清洁,我不必用逻辑来污染我的测试,以控制它使用的数据源。

    另外,第二个不是简单地按域设置不同的数据源 - 我想在不同的测试中针对不同的DB重用相同的域。

    任何想法赞赏,如果你已经这样做,请分享! 我们使用SPOCK。


    这里是我发现的关于Luke Daley添加自定义测试阶段/类型的博客文章。 有没有人执行过这个? 现在我已经阅读并理解了术语,我认为我想要做的是设置新的类型 - 而不是阶段。 不幸的是,虽然我们正在使用spock,但我们已经基本上使用了自定义类型。 虽然我们可以将spock作为2种类型之一,并可能创建'SPOCK-IN-MEM'类型,但这可能需要重新定义可能无法使用的spock类型。 欢迎任何建议。 我想说这似乎经常出现(我已经在其他论坛上提出过这个问题),应该有一个更简单的方法来解决这个问题。


    链接地址: http://www.djcxy.com/p/93489.html

    上一篇: how to use different datasources for different test

    下一篇: How to properly test @Async mailers in Spring 3.0.x?