测试无效方法行为 junit 和 mockito



鉴于此服务,我想测试一下stuff对象的角色属性是否正确设置:

public void saveAStuffForAnEvent(Event whatever) {
if (whatever == null){
Stuff stuff = StuffBuilder().role(StuffRoles.DEFAULT).build();
stuffRepository.save(stuff);
} else {
Stuff stuff = StuffBuilder().role(StuffRoles.OTHER).build();
stuffRepository.save(stuff);
}
}

如何测试填充对象是否已使用 DEFAULT 角色正确创建?

使用俘虏。

在测试中创建字段@Captor注释如下:

@Mock
private StuffRepository stuffRepository;
@Captor
private ArgumentCaptor<Stuff> stuffCaptor;

然后在测试之后:

// when
subject.saveAStuffForAnEvent(event);
// then
verify(stuffRepository).save(stuffCaptor.capture());
assertThat(stuffCaptor.getValue().getRole()).isEqualTo(StuffRoles.DEFAULT);

或者如果是集成测试,那么:

// when
subject.saveAStuffForAnEvent(event);
//then
assertThat(subject.findAll().get(0).getRole()).isEqualTo(StuffRoles.DEFAULT);

最新更新