我是單元測試的新手,我只是進入構建測試套件的例程。我有什麼是一個很大的項目,我想從一開始就構建測試。在單元測試中發現失敗的模式
我想弄清楚構建測試套件的一般策略和模式。當你看一堂課時,顯然由於課堂的性質,很多考試都會出現在你面前。對於具有基本CRUD操作的「用戶帳戶」類,與數據庫表相關,我們將要測試 - CRUD。
- 創建對象,看它是否存在
- 查詢其屬性
- 改變一些屬性
- 變化中的一些屬性值不正確
- ,並再次將其刪除。
至於如何突破東西,有「失敗」共同測試來最CRUD類,如:
- 無效的輸入數據類型
- 甲號碼作爲ID密鑰超出的範圍所選擇的數據類型
- 輸入一個不正確字符編碼
- 輸入太長
依此類推。
對於涉及文件操作的單元測試中,「破事」列表可以在文件名
- 無效字符
- 文件名過長
- 文件名使用不正確的協議或路徑
我非常確定類似的模式 - 適用於目前正在進行的單元測試 - 可以找到大多數正在測試的單元。
現在我的問題是:
上午我在看到這樣的 「突破模式」 是否正確?或者我在單元測試方面得到了一些完全錯誤的信息,如果我做得對,這完全不是問題?單元測試是一種尋找儘可能多的方法來打破單元的正確方法嗎?
如果我是正確的:是否存在此類模式的現有定義,列表和備忘單?
是否有任何規定(主要是在PHPUnit中,因爲這是我工作的框架)使這些模式自動化?
是否有任何幫助 - 以檢查列表或軟件的形式 - 幫助編寫完整的測試?
謝謝佩特。我仍然在圍繞這個話題找到自己的方法,但仍然不確定自己是否正確做事,所以我很感激能夠在此獲得高質量的反饋。只是當我第二次寫同樣的測試時,我懶惰的人的直覺響了起來。但是我理解你對TDD的觀點以及如何實現自動化不是重點。我注意到我首先寫了測試,然後是單元,這是一個非常棒的工作方式,所以我慢慢地融入了它。 – 2010-03-26 21:39:25
@皮卡做法使得主人,這是真正得到它的唯一方法:-) Btw Pekka是芬蘭人的名字,你是芬蘭人的起源嗎? – 2010-03-26 22:06:19
@彼得肯定會。起源:一半。我出生在芬蘭,但在德國長大,所以我幾乎是德國人。不過,我仍然會說一點芬蘭語。 – 2010-03-26 22:33:00