【发布时间】:2021-03-02 23:43:53
【问题描述】:
我正在测试一个具有可测试方法(下面的方法本身)和返回值的类。 使用 Mockito 我遇到了问题。 void方法roomDao.updateData(outData)的问题;
public IEntity getData(SimBasket<DataEntity, SimRequest> request) {
Entity outData = converterData.convertNetToDatabase(request);
roomDao.updateData(outData);
return outData;
}
这是我的测试代码:
@Test
public void getData() {
simRepo = new SimRepo();
Mockito.when(simRepo.getData(request)).thenReturn(new Entity());
}
错误日志:
org.mockito.exceptions.misusing.CannotStubVoidMethodWithReturnValue: 'updateData' 是一个 void 方法,它不能被 返回值 存根! Voids 通常被 Throwables 存根: doThrow(exception).when(mock).someVoidMethod();
我似乎不太明白如何解决这个问题,因为 void 方法位于具有返回值的方法中。
【问题讨论】:
-
你在哪里嘲笑
roomDao? -
如果你想模拟
SimRepo,为什么用new SimRepo()而不是Mockito.mock(SimRepo.class)来初始化呢? -
@Smutje 问题已解决,感谢您的宝贵时间。
标签: java android junit mockito