[英]Groovy Grails test case error when converting to xml
我正在嘗試為此方法編寫一個測試用例,當從非測試用例代碼中擊中該方法時,它可以工作...
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)時會引發該異常的原因嗎? 從非測試用例代碼中找到該方法時,它工作正常。
找到了解決方案。 在addConverters(helperBean)
的setup()方法中添加addConverters(helperBean)
應該可以解決該問題。
您的測試類(使用testGetData()方法的地方)實現了ControllerUnitTestCase類,還是您在使用注釋@TestFor(SomeController)的地方?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.