私は@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