以下代碼是我的方法邏輯。什麼是適合這種方法編寫JunitTestCases的方法
pulic String getData()
{
if (leg.length == 4)
return "ATE";
else if (leg.length == 2) {
return "FTE";
}
if (leg.length == 3) {
if (xr1.KotilaType.equals("CST")) {
return "HTE";
}
return "DTE";
}
return "BTE";
}
按照我的命令,我需要開始爲此方法編寫Junit測試用例。
正如你所看到的,這個方法中只有一個方法和一些條件。
現在我的問題是, 我們是否需要爲每個條件寫一個單獨的Junit TestCase(一個分開的方法)?
或者只寫一個Junit TestCase並覆蓋所有上述條件就足夠了嗎?
我是junit的新手而不是專家,請指導我爲上述方法編寫JunitTestCases的方法是什麼?
實際上,我會說單個測試用例是* bad *風格。沒有進攻=)原因是,如果你的第一個斷言失敗,那麼你不知道其他斷言是否會通過或失敗。所以,你可能會看到失敗,去修正一些代碼,重新運行測試,然後找到......測試仍然失敗!只是在不同的斷言。這也使得使用度量標準來決定構建的不穩定性等變得更加困難。基本上,我們獲得的信息使得您可以輕鬆地編寫測試(通常只寫一次,這樣我們就可以花時間做正確的事)從那些測試。 – Kane
@Kane我同意,但如果我有20個左右的組合,並且我正在更改代碼,並且所有組合都在單獨的測試中,那麼如果我已經涵蓋了所有的情況。所以在正常情況下,我有一個測試/案例,但我不介意使用相同方法的多個組合。 –
夠公平的,我可以理解爲什麼會發揮作用。但是如果你擔心你沒有覆蓋所有的情況,你的代碼覆蓋工具不應該告訴你嗎?我會失去我的。 – Kane