集成测试期间覆盖Grails数据源配置

时间:2019-03-09 03:51:23

标签: grails groovy integration-testing spock spy

我正在为Grails应用程序编写集成测试。该测试为该测试动态创建一个数据库模式和一个db用户,并在最后将其拆解。

我想将新创建的值应用于被测应用程序,而不是application.yaml中配置的值。

  1. 我尝试注入 grailsApplication ,但在Spock集成测试中为空。
  2. defaultGrailsApp ,我可以更改道具,但应用程序不采用新属性

我的测试如下(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有点陌生,是否有人熟悉源代码来解决这个问题?

0 个答案:

没有答案