меня есть компонентКак дразнить GrailsApplication для модульного тестирования в @component объекта
@Component
class SomeComponent {
@Autowired
GrailsApplication grailsApplication
String buildString(String someInfo) {
return "${grailsApplication.config.my.string}${someInfo}"
}
}
и тест блока
@TestMixin(ControllerUnitTestMixin)
class SomeComponent Tests {
@Test
void test() {
SomeComponent component = new SomeComponent()
component.grailsApplication = new Expando()
component.grailsApplication.config = [config: [my: [string: 'FOO']]]
assert component.buildString('BAR') == 'FOOBAR'
}
}
Когда я исполню мой тест, который я получил эту ошибку:
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object '{}' with class 'groovy.util.Expando' to class 'org.codehaus.groovy.grails.commons.GrailsApplication'
Итак, каков наилучший способ для этого?
Вы пытаетесь впихнуть в Expando.class в собственность определяется как GrailsApplication – dstarh
Да, я пытался поставить размораживание, но у меня был какой-то другой проблема при автообучении – Thermech