[英]How to use Mockito.verify with ignore one field?
我有一个模块:
class User {
String id;
double text;
constructor (String id){
this.id = id;
this.text = Math.random();
}
}
还有一个方法:
class UserService{
void saveUser(String id){
User user = new User(id);
userRepository.save(user);
}
}
对于这段代码,我想做一个单元测试:
@Test
void saveUserTest(){
//Given
User userTest = new User("123");
//When
UserService.saveUser("123");
//Then
Mockito.verify(userRepository).save(userTest);
}
在这里我有所不同,因为用户文本是随机生成的。
那么,我怎样才能忽略字段文本呢?
您可以使用Mockito.any(User.class)
忽略它
Mockito.verify(userRepo).save(Mockito.any(User.class));
或使用 Argument Captor 来捕获传入的内容,并根据需要进一步断言该值。
像这样:
@Captor
private ArgumentCaptor<User> userArgumentCaptor;
@Test
void saveUserTest(){
//Given
User userTest = new User("123");
//When
userService.saveUser("123");
//Then
Mockito.verify(userRepo).save(userArgumentCaptor.capture());
assert(userArgumentCaptor.getValue().getId()).equals("123");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.