簡體   English   中英

轉換為xml時的Groovy Grails測試用例錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM