1

我正在为 Web 服务 API 编写适配器。适配器与 Web 服务同步文件。我要测试的一件事是,如果在我的适配器同步时一个同步失败,下一个同步仍然可以拾取所有正确的文件。

我的问题是如何在与真实 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 实现的吗?或者我必须编写自己的 Mock 类?

4

1 回答 1

1

如果您使用 Mockito,您可以创建一个Answer保留调用计数器的类,在大多数调用中调用真实类,但是当计数器达到您的幻数时,您会抛出异常。

于 2012-04-18T19:53:00.847 回答