我UserService
有 GET 方法,它回傳由 id 找到的物件。比方說:
@Service
public class UserService {
@Autowired
UserRepository repository;
public User getUserById(Long id) {
return repository.findById(id)
.orElseThrow(() -> new UserNotFoundException(id));
}
}
如果找到用戶,我做了簡單的測驗:
@ExtendWith(MockitoExtension.class)
class UserServiceTest {
@Mock
private UserRepository userRepository;
@InjectMocks
private UserService userService;
@Test
public void whenGivenId_shouldReturnUser_ifFound() {
User user = new User();
user.setId(89L);
when(userRepository.findById(user.getId())).thenReturn(Optional.of(user));
User expected = userService.getUserById(user.getId());
assertThat(expected).isSameAs(user);
verify(userRepository).findById(user.getId());
}
}
現在我想做一個方法,比如說:public void shouldThrowExceptionWhenUserDoesntExist()
. 如何在 JUnit5 中實作?在 JUnit4 中,我會做這樣的事情:
@Test(expected = UserNotFoundException.class)
public void shouldThrowExceptionWhenUserDoesntExist() {
User user = new User();
user.setId(89L);
user.setName("Test Name");
given(userRepository.findById(anyLong())).willReturn(Optional.ofNullable(null));
userService.getUserById(user.getId());
}
由于這@Test(expected = UserNotFoundException.class)
在 JUnit5 中已經過時,我在任何地方都找不到在 JUnit5 中處理此類例外的方法。
uj5u.com熱心網友回復:
這樣做
Assertions.assertThrows(UserNotFoundException.class, () -> {
userService.getUserById(1234);
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/505301.html
上一篇:嘗試提供影像時,如何解決Spring中“使用預設Content-Type'image/png'的[class[B]沒有轉換器”錯誤?