@TargetSE(valueSE={TYPESE,FIELDSE}) @RetentionSE(valueSE=RUNTIMESE) @DocumentedSE @RepeatableSE(valueSE=MockBeans.class) public @interface MockBean
ApplicationContext に追加するために使用できるアノテーション。クラスレベルのアノテーションとして、または @Configuration クラスのフィールド、または @RunWith SpringRunner のテストクラスで使用できます。 モックは型または bean name で登録できます。コンテキストで定義された同じ型の既存の単一の 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 アノテーション内に含まれる場合、複数回指定できます。
MockitoPostProcessorpublic abstract StringSE name
public abstract ClassSE<?>[] extraInterfaces
MockSettings.extraInterfaces(Class...) を参照してください。public abstract org.mockito.Answers answer
Answers 型。public abstract boolean serializable
MockSettings.serializable() を参照してください。public abstract MockReset reset
MockReset.AFTER です。これは、各テストメソッドが呼び出された後にモックが自動的にリセットされることを意味します。Copyright © 2019 Pivotal Software, Inc.. All rights reserved.