当我自己运行一组JUnit 4测试时,它们运行起来没有问题,但是当我执行测试包时,当尝试模拟模拟实例的方法时,JUnit 4测试会抛出Nullpointer异常。 / p>
为了测试我的一种方法,我需要为此模拟一个库的静态方法(API调用)的行为,我将Powermock与Mockito一起使用,该方法仅在JUnit 4下运行,因此我需要运行它们在我们的项目中使用JUnit Vintage。
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@ActiveProfiles({"dev"})
@Transactional
public class ChargebeeJUnit4Test {
@Test
public void chargebeeCustomerCreated() throws Exception {
//Arrange
String eventId = "ev_Hr5514pR9BCPBL13bg";
String customerCreatedEvent = "{\"id\": \"" + eventId + "\",}";
Request mockedRequest = Mockito.mock(Request.class);
Mockito.when(mockedRequest.request())
.thenReturn(new Result(200,
new JSONObject("{" +
"\"event\": {" +
"\"event_type\": \"customer_created\"," +
"\"content\": {" +
"\"customer\": {" +
"\"id\": \"" + ORGANISATION_WITHOUT_CB + "\"," +
"}" +
"}" +
"}" +
"}")));
}
}
当我自己运行带有JUnit 4测试的文件时,所有这些都通过了,但是当我运行测试包(一个带有JUnit5的文件,另一个带有JUnit 4测试的文件)时,NPE抛出{ 1}}。
通过Intellij IDEA执行测试时会出现问题。
编辑:当我删除所有PowerMock代码时,也会出现此问题