问题描述
具有以下代码:
@SpringBoottest(classes = UiApplication.class)
class CleanTestData {
@Autowired DataPopulation dataPopulation;
List<String> branches = Arrays.asList("master","f1","f2");
@Test
void cleanData() {
for (String branch : branches){
dataPopulation.removeAllTestData();
}
}
}
@Component
@Slf4j
public class DataPopulation {
private JdbcTemplate jdbcTemplate;
@Autowired
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public void removeAllTestData() {
jdbcTemplate.update("delete from myaccounts")
}
}
application.properties
spring.datasource.url=jdbc:postgresql://8.8.8.8:7320/${branch}
每个分支都有自己的数据库。
在 cleanData() 测试运行期间,它需要重新连接到特定的数据库。
文件:
application.properties - Spring 配置
DataPopulation - 用于连接到数据库并执行一些查询的类
CleanTestData - 测试,为每个分支调用干净的测试数据。
我需要解决以下挑战:
-
如何在cleanData()测试运行时将分支名称传递给spring.datasource.url?
也许,我可以把分支的变量作为系统环境变量,每次都覆盖它。 -
如何使用更新的配置重新连接 JdbcTemplate?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)