我正在尝试使用 Mockito、JUnit 5 和 Spring Boot 对服务层进行单元测试,但我得到 NullPointerException
I am trying to do a unit test into the service layer with Mockito, JUnit 5 and Spring Boot but I get NullPointerException
我正在尝试使用 Mockito、JUnit 5 和 Spring Boot 对服务层进行单元测试,但出现 NullPointerException。
这是我的测试class:
class UserServiceTest {
@Mock
UserRepository userRepository;
@InjectMocks
IUserService userService;
UserMapper userMapper;
@Test
void when_save_user_it_should_return_user(){
UserRequest userRequest = UserRequest.builder()
.email("pedro@gmail.com")
.password("123456")
.firstName("Pedro")
.lastName("Perez")
.birthDate(LocalDateTime.now())
.imageUrl("")
.currency("170")
.build();
Mockito.when(userRepository.save(Mockito.any(UserEntity.class))).thenReturn(new UserEntity());
UserEntity createdUser = userService.createUser(userRequest);
assertThat(createdUser.getFirstName()).isSameAs(userRequest.getFirstName());
}
}
这是我的回复:
java.lang.NullPointerException
at com.jhapdevelopment.moneyhub.usermicroservice.services.implementations.UserServiceTest.when_save_user_it_should_return_user(UserServiceTest.java:41)
我不明白为什么我会收到这个回复,我的意思是可能是依赖性问题
我猜 mocking 没有正确注入。
对于 JUnit 5,您必须在 class 之上使用 @ExtendWith(MockitoExtension.class)
。
@InjectMocks
IUserService userService -> 替换为 UserServiceImpl
我正在尝试使用 Mockito、JUnit 5 和 Spring Boot 对服务层进行单元测试,但出现 NullPointerException。
这是我的测试class:
class UserServiceTest {
@Mock
UserRepository userRepository;
@InjectMocks
IUserService userService;
UserMapper userMapper;
@Test
void when_save_user_it_should_return_user(){
UserRequest userRequest = UserRequest.builder()
.email("pedro@gmail.com")
.password("123456")
.firstName("Pedro")
.lastName("Perez")
.birthDate(LocalDateTime.now())
.imageUrl("")
.currency("170")
.build();
Mockito.when(userRepository.save(Mockito.any(UserEntity.class))).thenReturn(new UserEntity());
UserEntity createdUser = userService.createUser(userRequest);
assertThat(createdUser.getFirstName()).isSameAs(userRequest.getFirstName());
}
}
这是我的回复:
java.lang.NullPointerException
at com.jhapdevelopment.moneyhub.usermicroservice.services.implementations.UserServiceTest.when_save_user_it_should_return_user(UserServiceTest.java:41)
我不明白为什么我会收到这个回复,我的意思是可能是依赖性问题
我猜 mocking 没有正确注入。
对于 JUnit 5,您必须在 class 之上使用 @ExtendWith(MockitoExtension.class)
。
@InjectMocks IUserService userService -> 替换为 UserServiceImpl