我正在尝试找出一种方法来针对内存数据库(H2)和其他针对我们的 Oracle 测试数据库执行某些集成测试。也许这是我有限的测试编写经验,但似乎某些测试(例如搜索查询)更适合在内存中,因为我可以控制查询的数据集,而其他测试(例如测试事务/持久性)将受益于违背我们的 REAL 模式和数据库(甲骨文)。
我可以想到两种方法,但不知道如何实现:
- 添加一个新的测试阶段,以便我可以在内存中进行集成测试和集成测试(使用 oracle),并在不同的阶段运行不同的测试,并为不同的数据库配置每个测试
- 让每个测试控制使用哪个数据源
我更喜欢第一个作为它的清洁器,我不必用逻辑来污染我的测试来控制它使用哪个数据源。
此外,第二个不是简单地按域设置不同的数据源——我想在针对不同数据库的不同测试中重用相同的域。
任何想法表示赞赏,如果你这样做了,请分享!我们确实使用 SPOCK。