0

私のプロジェクトでは、 @Service アノテーションが付いたサービスがあります。

@Service
public class ExampleService { ... }

次の方法でテスト用の構成ファイルを使用して、このサービスを Mockito-mock でオーバーライドしたいと思います。

public class TestContext{
   @Bean
   @Primary
   public ExampleService exampleService(){
      return mock(ExampleService.class);
   }
}

そして私のテストクラスでは:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { WebContext.class, TestContext.class})
@WebAppConfiguration
public class TestExample{...}

何らかの理由でモックが注入されていません。これを機能させる唯一の方法は、@Service を使用せず (@Component でも同じ問題が発生します)、WebContext で Bean アノテーション付きメソッドを使用して ExampleService をロードし、WebContext.class の背後に TestClass を配置することです。 ContextConfiguration アノテーション (ここに書いたコードのように)。理由がわかりません。 @Service アノテーションを使い続ける方法を知りたいです。

4

0 に答える 0