Junit 在调用给定的模拟void方法时执行自定义操作

Junit 在调用给定的模拟void方法时执行自定义操作,junit,mocking,mockito,Junit,Mocking,Mockito,我希望Mockito能够在调用给定的void方法时执行自定义操作 假设我有以下代码: @Autowired private ProfileService profileService; @Autowired private ProfileDao profileDao; private List<Profile> profiles; @Before public void setup() { Mockito.when(profileDao.findAll()).thenR

我希望Mockito能够在调用给定的void方法时执行自定义操作

假设我有以下代码:

@Autowired
private ProfileService profileService;

@Autowired
private ProfileDao profileDao;

private List<Profile> profiles;

@Before
public void setup() {
    Mockito.when(profileDao.findAll()).thenReturn(profiles);
    Mockito.when(profileDao.persist(any(Profile.class))).thenAddProfileToAboveList...
}

@Configuration
public static class testConfiguration {
    @Bean
    public ProfileDao ProfileDao() {
        return mock(ProfileDao.class);
    }
}
@Autowired
私人档案服务;
@自动连线
私有ProfileDao ProfileDao;
私人名单简介;
@以前
公共作废设置(){
Mockito.when(profileDao.findAll())。然后返回(profiles);
Mockito.when(profileDao.persist(any(Profile.class)))。然后将profiles添加到Bovelist。。。
}
@配置
公共静态类testConfiguration{
@豆子
公共档案dao ProfileDao(){
返回mock(ProfileDao.class);
}
}
假设我想将配置文件实例添加到配置文件列表中。莫基托能做到吗?如果是,如何使用


我能得到更多关于这个答案的细节吗?OP要求将配置文件添加到
配置文件
,但上面的代码没有提到。。。而
profiles
列表本身似乎超出了内部类的范围,链接文档似乎更关注于操纵模拟,而不是调用任意未经修改的代码。
doAnswer(new Answer() {
   public Object answer(InvocationOnMock invocation) {
       // make the changes you need here
   }})
 .when(mock).someMethod();