アノテーションインターフェース MockBean


モックを Spring ApplicationContext に追加するために使用できるアノテーション。クラスレベルのアノテーションとして、または @Configuration クラスのフィールド、または @RunWith SpringRunner のテストクラスで使用できます。

モックは、型または bean name で登録できます。型別に登録すると、コンテキスト内の一致する型(サブクラスを含む)の既存の単一の Bean がモックに置き換えられます。名前で登録すると、既存の Bean をモックによる交換の対象にすることができます。いずれの場合も、既存の Bean が定義されていない場合は、新しい Bean が追加されます。アプリケーションコンテキストには認識されているが Bean ではない依存関係(registered directly など)は検出されず、モックされた Bean が既存の依存関係とともにコンテキストに追加されます。

@MockBean がフィールドで使用され、アプリケーションコンテキストに登録されると、モックもフィールドに挿入されます。典型的な使用箇所は次のとおりです。

 @RunWith(SpringRunner.class)
 public class ExampleTests {

     @MockBean
     private ExampleService service;

     @Autowired
     private UserOfService userOfService;

     @Test
     public void testUserOfService() {
         given(this.service.greet()).willReturn("Hello");
         String actual = this.userOfService.makeUse();
         assertEquals("Was: Hello", actual);
     }

     @Configuration
     @Import(UserOfService.class) // A @Component injected with ExampleService
     static class Config {
     }


 }
 
リクエストされた型の Bean が複数ある場合、フィールドレベルで修飾子メタデータを指定する必要があります。
 @RunWith(SpringRunner.class)
 public class ExampleTests {

     @MockBean
     @Qualifier("example")
     private ExampleService service;

     ...
 }
 

このアノテーションは @Repeatable であり、Java 8 で作業する場合、または @MockBeans アノテーション内に含まれる場合、複数回指定できます。

導入:
1.4.0
作成者:
Phillip Webb
関連事項:
  • オプション要素のサマリー

    オプション要素
    修飾子と型
    オプションの要素
    説明
    org.mockito.Answers
    モックで使用する Answers 型。
    ClassSE<?>[]
    モックするクラス。
    ClassSE<?>[]
    モックで宣言する必要がある追加のインターフェース。
    登録または置換する Bean の名前。
    モック Bean に適用するリセットモード。
    boolean
    生成されたモックが直列化可能な場合。
    ClassSE<?>[]
    モックするクラス。
  • 要素の詳細

    • name

      StringSE name
      登録または置換する Bean の名前。指定しない場合、名前が生成されるか、モックが既存の Bean を置き換える場合、既存の名前が使用されます。
      戻り値:
      Bean の名前
      デフォルト:
      ""
    • value

      @AliasFor("classes") ClassSE<?>[] value
      モックするクラス。これは、他の属性が定義されていない場合に簡潔にするために使用できる classes() のエイリアスです。詳細については、classes() を参照してください。
      戻り値:
      モックするクラス
      デフォルト:
      {}
    • classes

      @AliasFor("value") ClassSE<?>[] classes
      モックするクラス。ここで指定された各クラスにより、モックが作成され、アプリケーションコンテキストに登録されます。アノテーションがフィールドで使用される場合、クラスは省略できます。

      @MockBean が name も定義する場合、この属性には単一の値のみを含めることができます。

      これが唯一の指定された属性である場合、代わりに value エイリアスの使用を検討してください。

      戻り値:
      モックするクラス
      デフォルト:
      {}
    • extraInterfaces

      ClassSE<?>[] extraInterfaces
      モックで宣言する必要がある追加のインターフェース。詳細については、MockSettings.extraInterfaces(Class...) を参照してください。
      戻り値:
      追加のインターフェース
      デフォルト:
      {}
    • answer

      org.mockito.Answers answer
      モックで使用する Answers 型。
      戻り値:
      回答型
      デフォルト:
      RETURNS_DEFAULTS
    • serializable

      boolean serializable
      生成されたモックが直列化可能な場合。詳細については、MockSettings.serializable() を参照してください。
      戻り値:
      モックが直列化可能な場合
      デフォルト:
      false
    • reset

      MockReset reset
      モック Bean に適用するリセットモード。デフォルトは MockReset.AFTER です。これは、各テストメソッドが呼び出された後にモックが自動的にリセットされることを意味します。
      戻り値:
      リセットモード
      デフォルト:
      AFTER