2011-07-05 18 views
1

我正在使用Grails 1.3.6。我在我的服務這個代碼...集成測試發現資源中的問題

  if (folder) { 
        path = "json/${folder}/${page}.json" 
      } else { 
        path = "json/${page}.json" 
      } // if 
      def file = ApplicationHolder.application.parentContext.getResource(path).getFile(); 

一般情況下,文件被正確地從web應用程序/ JSON目錄檢索,但是當我運行一個集成測試(通過Grails的測試應用程序),上面的代碼嘗試檢索資源時失敗(「java.io.FileNotFoundException:類路徑資源[json/index.json]無法解析爲URL,因爲它不存在」)。以下是我的集成測試。我如何告訴它在哪裏可以找到資源?

謝謝 - 戴夫

class HomeControllerTests extends GroovyTestCase { 
... 

void testGetAllJSON() { 
      def controller = new HomeController() 

      // Call action without any parameters 
      controller.index() 

      def responseStr = controller.response.contentAsString 

      assertTrue(isValidJSON(responseStr)) 
    } 

回答

1

這可能是因爲上下文路徑是爲測試與web應用程序不同。嘗試改爲使用resource tag

if (folder) { 
    path = "${resource(dir:'json',file:"${folder}/${page}.json")}" 
} else { 
    path = "${resource(dir:'json',file:"${page}.json")}" 
} 
+0

嗨,謝謝,但這並不奏效。與之前一樣,FileNotFoundException失敗 – Dave