我有一个 Grails 服务,通过进行 HTTP 调用来发送电子邮件,使用的是第三方服务:
class EmailService {
def sendEmail(values) {
def valueJson = values as JSON
... // does HTTP call to 3rd party service
}
}
我编写了一个单元测试来测试这个服务(因为集成测试会启动Hibernate和整个领域框架,而这不是我所需要的):
@TestFor(EmailService)
class EmailServiceTests {
void testEmailServiceWorks() {
def values = [test: 'test', test2: 'test2']
service.sendEmail(values)
}
}
然而,当我执行这个单元测试时,它在尝试进行 JSON 转换时失败,并抛出以下异常:
org.apache.commons.lang.UnhandledException: org.codehaus.groovy.grails.web.converters.exceptions.ConverterException: Unconvertable Object of class: java.util.LinkedHashMap
于是我重新编写了我的单元测试,只做了以下操作:
void testEmailServiceWorks() {
def value = [test: 'test', test2: 'test2']
def valueJson = value as JSON
}
在进行as JSON
转换时,我遇到了相同的异常。
有谁知道为什么会出现这种异常,以及我该如何解决它?
import grails.test.mixin.TestMixin
和import grails.test.mixin.web.ControllerUnitTestMixin
。 - nbkhope