Java @InjectMock中的NullPointerException

Java @InjectMock中的NullPointerException,java,spring-boot,junit,mockito,Java,Spring Boot,Junit,Mockito,我正在尝试实现junit和mockito。injectMock对象中出现空指针异常。使用@Mock、@InjectMocks时,需要使用MockitoJUnitRunner运行测试用例 @RunWith(SpringJUnit4ClassRunner.class) public class UserServiceImplTest { @InjectMocks UserServiceImpl userServiceImpl; @Mock UserRepository userRepositor

我正在尝试实现junit和mockito。injectMock对象中出现空指针异常。

使用@Mock、@InjectMocks时,需要使用MockitoJUnitRunner运行测试用例

@RunWith(SpringJUnit4ClassRunner.class)
public class UserServiceImplTest {

@InjectMocks
UserServiceImpl userServiceImpl;

@Mock
UserRepository userRepository;

@Before
public void setup() {
    MockitoAnnotations.initMocks(this);
}

private final long USERID = 1l;

@Test
public void getUserTest() {
    userServiceImpl.getUser(USERID);
    verify(userRepository).findById(USERID);
    }
}
或者,可以通过编程方式启用MockitoJUnit runner来运行测试类

@RunWith(MockitoJUnitRunner.class)
其次,当您在测试用例中使用模拟对象时,您必须定义规则

@Before
public void init() {
    MockitoAnnotations.initMocks(this);
}

您必须在服务注入中添加
@Autowired

@Autowired
@注射模拟
UserServiceImpl UserServiceImpl;

当使用@Mock、@InjectMocks时,可以发布完整的错误堆栈跟踪吗?
,测试用例需要使用MockitoJUnitRunner运行。
这不是真的,它也适用于spring runner
@Before
public void init() {
    MockitoAnnotations.initMocks(this);
}
when(userServiceImpl.getUser(Mockito.anyLong())).thenReturn(0);