2016-08-16 49 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的實施可能會有點困難;-)