2012-08-23 41 views
1

我試圖寫一個測試用例這種方法,當它從非測試用例代碼打它的作品...Groovy的Grails的測試例錯誤時,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 '[email protected]' with class 'com.xyz.groovy.utils.HelperBean' to class 'grails.converters.XML' 

的getData(圖法)

def requestXml = userBean as XML 

誰能幫我出爲什麼它被拋出該異常時的getData(圖)正在從只測試用例打?當該方法從非測試用例代碼中被擊中時,它工作正常。

回答

0

找到解決方案。在測試用例的setup()方法中添加 addConverters(helperBean)應該解決問題。

0

您的測試類,其中testGetData()方法是,實現了ControllerUnitTestCase類還是您使用註釋@TestFor(SomeController)?