我正在尝试为这个方法编写一个测试用例,当它从非测试用例代码中被命中时会起作用...
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)时抛出异常?当从非测试用例代码中获取该方法时,它工作正常。
答案 0 :(得分:0)
找到解决方案。添加
测试用例的setup()方法中的addConverters(helperBean)
应该可以解决问题。
答案 1 :(得分:0)
testGeetData()方法所在的测试类是实现ControllerUnitTestCase类还是使用注释@TestFor(SomeController)的地方?