转换为xml时,Groovy Grails测试用例错误

时间:2012-08-23 18:56:37

标签: xml unit-testing grails groovy junit

我正在尝试为这个方法编写一个测试用例,当它从非测试用例代码中被命中时会起作用...

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)时抛出异常?当从非测试用例代码中获取该方法时,它工作正常。

2 个答案:

答案 0 :(得分:0)

找到解决方案。添加 测试用例的setup()方法中的addConverters(helperBean)应该可以解决问题。

答案 1 :(得分:0)

testGeetData()方法所在的测试类是实现ControllerUnitTestCase类还是使用注释@TestFor(SomeController)的地方?