我正在尝试为此方法编写一个测试用例,当从非测试用例代码中击中该方法时,它可以工作...
import grails.converters.XML
Class itemService(){
def getData(Map){
def helperBean = new HelperBean(Map)
def requestXml = helperBean as XML
-------- some code-------------
return requestXml
}
}
为了测试这种方法,我有一个像这样的测试用例:
void testGetData(){
def service = new itemService()
def id="123"
def map = [id:id.toLong()]
def result = service.getData(map)
assertNotNull(result)
assertEquals "123", result.id
}
但是它总是抛出这个异常
org.codehaus.groovy.runtime.typehandling.GroovyCastException: Cannot cast object 'com.xyz.groovy.utils.helperBean@443acc67' with class 'com.xyz.groovy.utils.HelperBean' to class 'grails.converters.XML'
在getData(Map方法)的这一行
def requestXml = userBean as XML
谁能帮我解决为什么仅从测试用例中击中getData(Map)时会引发该异常的原因?从非测试用例代码中找到该方法时,它工作正常。
最佳答案
找到了解决方案。新增中
测试用例的setup()方法中的addConverters(helperBean)
应该可以解决问题。
关于xml - 转换为xml时的Groovy Grails测试用例错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12098289/