2
JUnit4で@Rule
を作成したようなカスタムエクステンションを作成することはできますか?カスタムJUnit5エクステンションの作成方法
public class MockMetadataServiceRule extends ExternalResource {
@Override
protected void before() throws Throwable {
//some setup
}
@Override
protected void after() {
// some teardown
}
}
その後、私はJUnit5
@BeforeAll
public static void init() {
MetadataServiceFactory.setService(MockitoMockMetadataService.getMock());
}
@AfterAll
public static void teardown() {
MetadataServiceFactory.setService(null);
}
でテストクラス内でこれを行うことができますが、私はすることができます@ExtendWith(MyExtension.class)
今推測しますか?
EDIT: @nullpointerリンクが消えた場合の私の拡張の例。ありがとう。
public class MockMetadataServiceExtension implements BeforeAllCallback, AfterAllCallback {
@Override
public void afterAll(ExtensionContext extensionContext) throws Exception {
MetadataServiceFactory.setService(null);
}
@Override
public void beforeAll(ExtensionContext extensionContext) throws Exception {
MetadataServiceFactory.setService(MockitoMockMetadataService.getMock());
}
}
@LazerBanana答えの例をリンクしました。 – nullpointer
私はクラスに複数の拡張機能を持つことができますか? – LazerBanana
@LazerBananaはい、カンマをリスト形式で区切って指定することができます。 – nullpointer