的具體測試及流量我很新。我正在用phpUnit進行開發,但是由於我的問題是更一般/設計問題,所以實際環境不應太重要。單元測試:在一般的單元測試和測試控制
我認爲,儘可能詳細地編寫您的測試用例是一個好習慣。例如(越晚越好):
assertNotEmpty($myObject); // myObject is not Null
assertInternalType('array', $myObject); // myObject is an array
assertGreaterThan(0, count($myObject)); // myObject actually has entries
如果這是正確的,這裏是我的問題:
它是一個公認的做法,以編寫測試用例內一些流量控制,如果測試對象的狀態取決於外部來源(即數據庫) - 甚至一般?
像:
if (myObject !== null) {
if (count(myObject) > 0) {
// assert some Business Logic
}
else {
// assert some different Business Logic
}
}
就是這種流量控制的測試用例內受理或者是一個「代碼味道」,應該回避?如果沒問題,是否有任何提示或做法,這裏應該記住?
Definitly!該示例顯示了至少三個測試用例(有時似乎myObject可以並且應該爲空,有時它有一個計數,有時它不會),並且每個測試應該是一個測試用例,並像@David顯示的那樣創建。如果你繼續像這樣一個@SunnyRed建設測試,我會說你會遇到很大的麻煩,只是因爲你的測試套件不會顯示你測試過的許多事情的錯誤。 +1 @David – edorian
感謝您對David的貢獻。我將它標記爲正確的答案,因爲你更精確地覆蓋了我原來的關注點。 你說得很對,我不知道,我的結果反映了當前狀態,因此需要區分。 關於「解決途徑」:他們中的一個是最佳實踐還是以任何方式最常見的途徑,還是僅僅是一種風格問題? – SunnyRed