2011-07-05 15 views
1

Grails 1.3.6を使用しています。私は私のサービスでこのコード...通常、ファイルが正しくウェブアプリ/ JSONディレクトリから取得される統合テストで問題が見つかりました

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

がありますが、私は(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

関連する問題