1

このメソッドのテストケースを作成しようとしています。これは、テストケース以外のコードからヒットしたときに機能します...

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)がテストケースからのみヒットしているときに、なぜその例外がスローされるのか、誰かが私を助けてくれますか?そのメソッドが非テストケースコードからヒットした場合、正常に機能しています。

4

2 に答える 2

0

解決策を見つけました。テストケースのsetup()メソッドを追加 addConverters(helperBean)すると、問題が解決するはずです。

于 2012-08-24T14:33:53.810 に答える
0

testGetData()メソッドがあったテストクラスはControllerUnitTestCaseクラスを実装しましたか、それともアノテーション@TestFor(SomeController)を使用しましたか?

于 2014-02-21T16:19:23.017 に答える