![](/img/trans.png)
[英]How to use different MongoDB databases in Spring during JUnit tests
[英]How to run your JUnit tests on two different databases
我想使用两个不同的@ContextConfiguration运行相同的测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:/test/oracle.xml")
public class OracleTest extends BaseTest {}
对于其他数据库也有类似的副本,我可以在每个数据库的抽象类BaseTest中运行所有Tests。 此方法有两个缺点:
有一个更好的方法吗? 我尝试了几种批注(@ ContextHierarchy,@ Transactional等),但是由于我从没使用过它们,所以在我不太了解它们在做什么之前。 DbUnit似乎是一种可能性,但我不知道这真的有帮助。
与使用测试Spring上下文相比,单元测试类对我的关注要少得多。 我认为将Spring上下文测试作为反模式。 您的集成测试不在测试生产布线。 因此,您的生产环境未经测试。 尝试避免创建测试上下文,而是在集成测试中使用生产Spring配置。
您必须具有某种机制来替换生产中的数据库配置(例如,占位符)。 尝试将数据库配置提取到单独的文件(例如db.properties)中。 如果这样做,可以替换测试类路径上的db.properties,并使用生产Spring上下文进行测试。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.