我需要爲我的應用程序創建一些單元測試,但我不知道如何繼續,也找不到任何在線幫助。我想知道的是如何測試應用程序,其中有許多方法依賴於其他幾個方法。如何使用依賴關係對單元測試方法進行單元測試
例如
public class foo(){
public void doIt() {
boz();
bar();
biz.baz(); //from another class
}
public void bar(){
...
}
public int boz(){
...
}
}
所以像上面一個給出的一個場景會認爲既然是要反正失敗,如果事情是錯叫裏面的方法是單元測試doIt
方法就足夠了。
雖然,我不確定我們是否可以認爲這是單元測試,因爲它測試的不僅僅是一個實體的功能。另外,如果方法doIt
上的測試失敗,那麼將很難確定發生錯誤的位置,特別是在存在多個依賴關係的情況下 - 這是否違背了單元測試的含義?
到目前爲止,我已經想到的唯一方法是,首先測試的依賴關係(即bar
boz
baz
),然後doIt
方法來啓動。這樣,如果測試套件沒有錯誤並且失敗意味着在該方法中實現的代碼出現問題,而不是在其依賴關係內,則測試套件獲得doIt
。
但是,這是正確的做法嗎?
'bar'和'boz'不是依賴項,因爲它們是您正在測試的類的一部分。事實上,'biz'就是依賴。爲了單元測試'foo',你需要使'biz'成爲一個接口而不是具體的實現。這樣你可以在單元測試中提供一個虛擬版本的'biz'。 –
@KaseySpeakman提到'bar'和'boz'不是依賴關係,他們應該面對你的測試。爲什麼不使用已知的框架如JUnit? –
@KaseySpeakman是不是有點太多?改變整個實現和創建接口我不需要爲了單元測試而另外使用它。其他方法怎麼樣?我是否也單獨測試它們?即'boz'和'bar' – Rakim