在我的Java Web Spring应用程序中,我必须调用外部程序。这些不是一些REST API调用,而是文件系统上的一些系统二进制文件。
如何有效地测试/模拟这些呼叫?
由于
答案 0 :(得分:2)
你必须在抽象中思考。
示例:您可以创建类似
的内容interface BinaryRunner {
void runBinary(String command, String... args);
}
class BinaryRunnerImpl implements BinaryRunner { ...
(当然,这只是一个例子;因为我完全离开了我们的错误处理路径)
你的“生产”代码使用它来运行二进制文件。现在您可以模拟BinaryRunner的实例并将其提供给您的生产代码。您的生产代码会拨打电话;你可以使用模拟来检查它。
最后:当然,测试BinaryRunner的实现可能会有点困难; - )