私は@Autowire自分のクラスorg.springframework.core.io.ResourceLoaderの 1 つに参加しています。@Service
ResourceLoaderテスト中に のインスタンスにアクセスして、テスト対象のサービスに挿入できるようにしたいと考えています。ResourceLoaderテスト中にの完全に機能するインスタンスを取得する最良の方法は何ですか?
それが不可能な場合、代替手段はありResourceLoaderますか? 基本的に、サービスにプロジェクトからいくつかの静的ファイルを読み取らせる必要があります。
更新:
テストで@RunWith(SpringJUnit4ClassRunner.class)+を使い始めました。@ContextConfigurationただし、ResourceLoader現在サービスに注入されている は@Autowire、通常とは異なる動作をします (つまり、テスト コンテキストにない場合)。テストでResourceLoader#getResourceは、通常の実行中に表示される適切な絶対パスではなく、不正な相対パスを指す Resource を返します。
デバッグ中に発見されたその他の情報:
- テスト中、 @Autowired
resourceLoaderは instanceof ですorg.springframework.context.support.GenericApplicationContext - 通常の実行中
resourceLoaderは、のインスタンスですorg.springframework.web.context.support.XmlWebApplicationContext