2010-06-08 130 views
0

我是junit的新手,所以任何幫助表示讚賞。junit模擬對象

我有一個名爲sysconfig.java的類,我寫了一個名爲TestSysconfig.java的junit類文件,它測試了sysconfig.java中的一些方法。 我在sysconfig.java中測試的方法調用另一個類文件「ethipmapping.java」 我已經創建了這個類文件的模擬爲Testethipmapping.java。 所以我的問題是我如何告訴sysconfig.java調用這個模擬對象?

+5

您的命名顯示了爲什麼不遵循一套好的命名約定是完全不可理解的。 「Testethipmapping」?真?查看Java代碼約定:http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html – 2010-06-08 17:33:04

回答

0

所以我的問題是我如何告訴sysconfig.java調用這個模擬對象?
通過調用它。無論您在何處創建「ethipmapping」對象(新的ethipmapping()),您都必須創建Testethipmapping。

還有其他選項不涉及sysconfig.java中的更改,但很難在沒有看到代碼的情況下提供特定的建議。

3

而不是將「新」操作符與正在測試的類混合,您需要將ethipmapping的測試實例傳遞到正在測試的sysconfig類,無論是在構造函數中,還是通過setter。所以,你的類,你正在測試看起來像:

private EthipMapping mapping; 
    public Sysconfig(EthipMapping mapping) { 
     this.mapping = mapping; 
    } 

    public String someMethodIWantToTest() { 
     return mapping.doSomeStuffThatReturnsAString(); 
    } 

問題,像這樣的爲什麼像春天和谷歌吉斯的依賴注入框架是如此受歡迎,雖然簡單的情況下,像上面你不需要他們。