我正在为Grails应用程序编写集成测试。该测试为该测试动态创建一个数据库模式和一个db用户,并在最后将其拆解。
我想将新创建的值应用于被测应用程序,而不是application.yaml中配置的值。
我的测试如下(psedo代码):
@Integration
@Rollback
class MyServiceSpec extends Specification {
@Autowired
MyService mySvc
def setupSpec() {
//create db user
// create db schema
//grant permissions
}
def cleanupSpec() {
// delete test user
// delete schema
}
void 'Test MyService'() {
when:
mySvc.createReport(job)
then:
// check db for valid state
}
有没有办法在Grails中以编程方式覆盖application.yml属性并覆盖数据源配置?
更新1: 是否可以在数据源中添加间谍,以便我可以在运行时提供自己的实现?我对Grails / Groovy有点陌生,是否有人熟悉源代码来解决这个问题?