У меня есть служба Grails, которая отправляет электронные сообщения с помощью сторонней службы, выполняя HTTP-вызов:
class EmailService {
def sendEmail(values) {
def valueJson = values as JSON
... // does HTTP call to 3rd party service
}
}
Я написал unit test, чтобы протестировать эту службу (поскольку интеграционный тест включает Hibernate и всю инфраструктуру домена, которые мне не нужны):
@TestFor(EmailService)
class EmailServiceTests {
void testEmailServiceWorks() {
def values = [test: 'test', test2: 'test2']
service.sendEmail(values)
}
}
Однако, когда я выполняю этот unit test, он не работает с этим исключением, когда пытается выполнить преобразование as JSON
:
org.apache.commons.lang.UnhandledException: org.codehaus.groovy.grails.web.converters.exceptions.ConverterException: Неконвертируемый Объект класса: java.util.LinkedHashMap
Затем я повторно написал свой unit test, чтобы сделать следующее:
void testEmailServiceWorks() {
def value = [test: 'test', test2: 'test2']
def valueJson = value as JSON
}
И я получаю такое же исключение, когда он пытается выполнить преобразование as JSON
.
Кто-нибудь знает, почему я получаю это исключение, и как я могу это исправить?