2016-08-16 47 views
-2

在我的Java Web Spring应用程序中,我必须调用外部程序。这些不是一些REST API调用,而是文件系统上的一些系统二进制文件。如何在JUnit中模拟外部程序调用

我该如何有效地测试/模拟这些调用?

感谢

+0

不清楚 - 我不明白你在问什么。 –

+1

摘要'class MyExternalBinary'中的调用;然后嘲笑那堂课。 –

回答

2

你必须考虑在抽象

例如:你可以创建类似

interface BinaryRunner { 
    void runBinary(String command, String... args); 
} 

class BinaryRunnerImpl implements BinaryRunner { ... 

(当然,这只是一个例子,我彻底离开我们的错误处理路径)

而你的“生产”代码使用好吧,运行二进制文件。现在你可以模拟一个BinaryRunner的实例,并将它提供给你的生产代码。您的产品代码打出电话;你可以使用模拟来检查。

最后:当然,测试BinaryRunner的实施可能会有点困难;-)