私はgrails 2.3.6を使用していますが、MessageSourceを呼び出すサービスを呼び出すコントローラをテストしようとしています。私はこのポスト(How to unit or integration test use of injected messageSource for i18n in Grails 2.0 service)内のすべてのソリューションを試してみましたが、私はまだ、このエラーを取得しています:テストコントローラ(MessageSourceを呼び出すサービスを呼び出す)でのMessageSourceのインスタンス
org.springframework.context.NoSuchMessageException: No message found under code 'enrolment.state.approved' for locale 'es_ES'.
at es.portel.accessRequest.enyca.EnrolmentClientService.enrolmentTranslateState(EnrolmentClientService.groovy:30)
at es.portel.accessRequest.enyca.EnrolmentClientService.enromentsTranslateState_closure1(EnrolmentClientService.groovy:13)
at es.portel.accessRequest.enyca.EnrolmentClientService.enromentsTranslateState(EnrolmentClientService.groovy:12)
at es.portel.accessRequest.enyca.EnrolmentClientController.getAllEnrolments(EnrolmentClientController.groovy:41)
at es.portel.accessRequest.enyca.EnrolmentClientControllerSpec.test getAllEnrolments method(EnrolmentClientControllerSpec.groovy:34)
これは私のテストコードです:
@TestFor(EnrolmentClientController)
@Mock(EnrolmentClientService)
class EnrolmentClientControllerSpec extends Specification{
void "test getAllEnrolments method"() {
given:
MessageSource messageSource = getMessageSource()
controller.enrolmentClientService = new EnrolmentClientService()
controller.enrolmentClientService.messageSource = messageSource
Locale locale1 = new Locale("es_ES")
messageSource.addMessage('enrolment.state.approved',locale1, 'Aprobado')
when:
controller.getAllEnrolments()
then:
assertEquals response.status, HttpServletResponse.SC_OK
assertEquals response.format, 'json'
}
}
任意のアイデア? ありがとうございます。
あなたアールユニットテスト 'EnrolmentClientController'とあなたの' EnrolmentClientService'それはGrailsので嘲笑されているので、したがって、あなたが '新しいEnrolmentClientServiceを()'を使用することはできませんを嘲笑します。その行を削除しようとしてください – saw303
それはまだ、同じエラーを取得、動作しません。とにかく、ありがとう。 – GSAN