我想要自动测试我的spring。现在我有了7-8个有趣的情况,并使:
在postgres 7 db中部署
)
这很难。什么是简单的方法?
我希望有一个db用于测试(清除db,只有structure)
。
我能在春天之前做吗?早期我用python/django编程,并使用类似的方式。
发布于 2020-01-13 14:02:02
我认为解决这个问题的一种方法是通过自定义属性文件和@Configuration类。
您将为每个测试创建属性文件,例如test1-dbA.properties
jdbc.driverClassName=org.h2.Driver
jdbc.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1
jdbc.username=db1
jdbc.password=..接下来,您将定义从Test1-dbA属性加载属性的DataSource bean。
@Configuration
@EnableJpaRepositories(basePackages = "org.baeldung.repository")
@PropertySource("test1-dbA.properties")
@EnableTransactionManagement
public class DB1Config {
@Autowired
private Environment env;
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(env.getProperty("jdbc.driverClassName"));
dataSource.setUrl(env.getProperty("jdbc.url"));
dataSource.setUsername(env.getProperty("jdbc.user"));
dataSource.setPassword(env.getProperty("jdbc.pass"));
return dataSource;
}
// ...
}在JUnit测试中,您将加载配置类:
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {Application.class, DB1Config.class})
public class db1Test{
// ...
}这个选项和其他选项可以在这里查找:https://www.baeldung.com/spring-testing-separate-data-source和https://www.baeldung.com/spring-jpa-test-in-memory-database
https://stackoverflow.com/questions/59717294
复制相似问题