我正在为Web服务API编写适配器。适配器同步文件与web服务器。我想测试的一件事是,如果在我的适配器同步时同步失败,下一次同步仍然可以获取所有正确的文件。
我的问题是如何在与真实网络服务交互时模拟故障?例如,如果Web服务API包含:
class WebService {
List<String> getFileNamesToSync() {
......
}
File getFile(String name) throws SomeException {
<talks to the web service API>;
}
}
我的适配器类:
class MyAdapter {
void MyFunction() {
List<String> names = webService.getFileNamesToSync();
for(String n : names) {
File file = webService.getFile(n);
.......
}
}
}
如何模拟第三次调用getFile会因异常而失败?
我知道我可以通过Mock实现这一点,但我仍然希望我的其他调用getFile从Web服务返回真实数据?这是我用模拟可以实现的吗?或者我必须编写自己的Mock类?
答案 0 :(得分:1)
如果您使用Mockito,您可以创建一个Answer
类来保持调用计数器,在大多数调用中调用真实类,但是当计数器达到您的幻数时,您将抛出异常。