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)
現在?
編輯: 我的擴展案例@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