[英]Spring Boot Microservices - RestTemplate Null Pointer Exception in JUnit Test
[英]Spring Boot JUnit 5 test failing with null pointer
我正进入(状态
java.lang.NoSuchMethodError: org.junit.jupiter.api.extension.ExtensionContext.getRequiredTestInstances() at org.mockito.junit.jupiter.MockitoExtension.beforeEach(MockitoExtension.java:143) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$null$0(TestMethodTestDescriptor.java:126) at org.junit.jupiter. engine.execution.ThrowableCollector.execute(ThrowableCollector.java:40)
以下代码错误。
在 junit 测试中运行以下代码的正确方法是什么?
package com.safnas.unittesting.unittesting.business;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.when;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import com.safnas.unittesting.unittesting.data.SomeDataService;
@ExtendWith(MockitoExtension.class)
class SomeBusinessMockTest {
@InjectMocks
SomeBusinessImpl business = new SomeBusinessImpl();
@Mock
SomeDataService dataServiceMock;
@Test
void calculateSumUsingDataService_basic() {
when(dataServiceMock.retrieveAllData()).thenReturn(new int[] {1,2,3});
assertEquals(6, business.calculateSumUsingDataService());
}
@Test
void calculateSum_empty() {
when(dataServiceMock.retrieveAllData()).thenReturn(new int[] {});
assertEquals(0, business.calculateSumUsingDataService());
}
@Test
void calculateSum_oneValue() {
when(dataServiceMock.retrieveAllData()).thenReturn(new int[] {5});
assertEquals(5, business.calculateSumUsingDataService());
}
}
我删除了@ExtendWith(MockitoExtension.class) 并在下面使用
@BeforeEach
void beforeEach() {
MockitoAnnotations.openMocks(this);
}
它工作得很好
根据 javadocs
AutoCloseable org.mockito.MockitoAnnotations.openMocks(对象 testClass)
为给定的 testClass 初始化使用 Mockito 注释的对象:@org.mockito.Mock、@Spy、@Captor、@InjectMocks
有关 MockitoAnnotations class,请参阅 javadoc 中的示例。 参数:testClass 返回:在 testClass 中完成任何测试时关闭的可关闭对象。
再观察一次。
没有任何改变,我原来的问题是在 intelliJ
eclipse 似乎只是有问题
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.