0

ファイル名を参照するコードがあります。サーバー上では、この参照は私のwarディレクトリを基準にしています。ただし、テストを実行しているときは、相対ルートが設定されていないようです。ローカルHDのルートから始まる絶対パスのみが、実際にファイルを検索します。

私はAppEngineのコンテキストでテストしています。これは、メソッドでLocalServiceTestHelperwarディレクトリを返しますgetAppDirが、それでもコードは相対パスを理解できません。

JUnitテストで相対ファイル名のルートを設定するにはどうすればよいですか?

4

2 に答える 2

2

いくつかのオプションがあります。いずれにせよ、ファイル アクセス (または少なくともファイル パスの解決) を別のクラスにカプセル化します。そうすれば、次のことができます。

  • テストでそのクラスをモックして、正しいファイル (パス) を提供します。
  • 環境変数をテスト クラスに渡して、正しいファイル (パス) を解決します。
  • ファイルが見つからない場合のフォールバック実装を提供します (テストの場合と同様)。
  • 等...
于 2012-04-21T13:54:01.430 に答える
0

単体テスト用に、SupportFilePathResolverというユーティリティ クラスを作成しました(コードを参照)。クラスパスを調べてファイルを見つけます。気になるファイルがクラスパスにある場合、これはうまく機能します。クラスパスにない場合、これは役に立ちません。

于 2012-04-20T20:31:13.430 に答える