アノテーションインターフェース MockBean
@DeprecatedSE(since="3.4.0",
forRemoval=true)
@TargetSE({TYPESE,FIELDSE})
@RetentionSE(RUNTIMESE)
@DocumentedSE
@RepeatableSE(MockBeans.class)
public @interface MockBean
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
モックを 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
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。モックで使用するAnswers
型。ClassSE<?>[]
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。モックするクラス。ClassSE<?>[]
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。モックで宣言する必要がある追加のインターフェース。非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。登録または置換する Bean の名前。非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。モック Bean に適用するリセットモード。boolean
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。生成されたモックが直列化可能な場合。ClassSE<?>[]
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。モックするクラス。
要素の詳細
name
StringSE name非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。登録または置換する Bean の名前。指定しない場合、名前が生成されるか、モックが既存の Bean を置き換える場合、既存の名前が使用されます。- 戻り値:
- Bean の名前
- デフォルト:
- ""
value
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。- 戻り値:
- モックするクラス
- デフォルト:
- {}
classes
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。モックするクラス。ここで指定された各クラスにより、モックが作成され、アプリケーションコンテキストに登録されます。アノテーションがフィールドで使用される場合、クラスは省略できます。@MockBean
がname
も定義する場合、この属性には単一の値のみを含めることができます。これが唯一の指定された属性である場合、代わりに
value
エイリアスの使用を検討してください。- 戻り値:
- モックするクラス
- デフォルト:
- {}
extraInterfaces
ClassSE<?>[] extraInterfaces非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。モックで宣言する必要がある追加のインターフェース。詳細については、MockSettings.extraInterfaces(Class...)
を参照してください。- 戻り値:
- 追加のインターフェース
- デフォルト:
- {}
answer
org.mockito.Answers answer非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。モックで使用するAnswers
型。- 戻り値:
- 回答型
- デフォルト:
- RETURNS_DEFAULTS
serializable
boolean serializable非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。生成されたモックが直列化可能な場合。詳細については、MockSettings.serializable()
を参照してください。- 戻り値:
- モックが直列化可能な場合
- デフォルト:
- false
reset
MockReset reset非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。モック Bean に適用するリセットモード。デフォルトはMockReset.AFTER
です。これは、各テストメソッドが呼び出された後にモックが自動的にリセットされることを意味します。- 戻り値:
- リセットモード
- デフォルト:
- AFTER
MockitoBean
を推奨