Я пишу интеграционный тест для приложения Grails.Тест создает схему базы данных и пользователя базы данных динамически для теста и разбирает его в конце.
Я хотел бы применить вновь созданные значения к тестируемому приложению вместо значений, настроенных в application.yaml.
- Я пытался ввести grailsApplication ,но в тесте интеграции Спока оно пустое.
- defaultGrailsApp Я могу изменить реквизиты, но приложение не принимает новые свойства
MyТест выглядит следующим образом (код 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
}
Есть ли способ программно переопределить свойства application.yml в Grails и переопределить конфигурацию источника данных?
ОБНОВЛЕНИЕ 1: Можно ли добавить шпион в источник данных, чтобы я мог предоставить свою собственную реализацию во время выполнения?Я немного новичок в Grails / Groovy, есть ли у кого-нибудь знакомое с исходным кодом, чтобы понять это?