2012-09-11 189 views
2

背景我應該寫什麼樣的測試?

我正在寫一個使用Java,slick2d和其他框架的小遊戲。 Slick2d編寫單元測試並不容易,但那是我無法解決的問題。其中一個項目的目標是有一定的測試覆蓋率,但...

的問題

嗯...我寫了一個200行的測試條件下,15次測試,所有的只有一種方法。

我測試了一切我能想到的:無效參數,無效參數的組合,交換方法調用等等。我知道我無法測試所有的東西,而且我知道我不需要測試庫中的代碼(Java API,slick2d API,logback API等),但即使在這種情況下,我也會因爲測試而變得非常瘋狂,我相信如果我爲每個創建的方法編寫15個測試,我將無法完成它。所以......

問題

哪裏好TDD劃清界線。在寫測試?究竟應該測試什麼,我可以放心忽略哪些內容? OBS:對於那些你想知道的,我寫了15個測試的單方法類將一些字符串加載到一個數組中,並且它的方法將檢索字符串,給定行和文件作爲參數。 OBS2:我並不懷疑單元測試。我實際上希望將它們整合到我的項目中(只要我的API允許)。我只想完成這個項目,並且不要整天寫作測試。

+0

你寫測試有三個原因:1)因爲老闆/認證過程/不管怎麼說。 2)找到現有的錯誤。 3)在進行更改後,爲了便於「迴歸測試」。你所做的測試類型將取決於他們的目的。 (但要記住你想測試的東西,如果它對字符串中的內容不敏感,那麼通過算法運行十幾個不同的字符串是沒有好處的,但是你可能想要測試最小長度/最大長度的字符串,等等測試邊界條件,壓力條件(大數據集)等等。尤其是對無效輸入的測試處理。 –

+0

如果您有關於測試驅動開發的更具體的問題,請查看[程序員](http://程序員.stackexchange.com) – ChrisF

回答

2

我建議以下http://www.amazon.com/dp/0321146530/?tag=stackoverfl08-20 從亞馬遜
除了書的建議,當你設計你的測試,你一開始有很多的工作,但在一個點上,對於每一個新的代碼, 大部分的測試邏輯已經到位
我還建議確保你專注於入侵防護(測試SQL注入,緩衝區ovf等的代碼)
另一點要記住的是,當編寫代碼的人是誰寫了測試,你可能想要別人,它會試圖分解它...不是爲了一切,但至少是它的一部分。

1

我主要是爲公共方法編寫單元測試。當我認爲它正在以正確的方式工作時,我會停止爲方法編寫測試,並且如果發現錯誤,則只會爲該方法添加更多測試。

+0

我認爲這是一個很好的方法,在應用程序的關鍵部分添加更多的測試總是更好。 –

1

如果您在談論TDD,請記住,測試方法首先是測試,因爲測試會推動您的設計以及最終API的外觀。如果你使用這種方法,那麼在哪裏停止寫新的測試,這條線會更清晰。

1

那麼,在適當的TDD中,您實際上首先會編寫您想要添加的新功能的測試。最初它會失敗,直到你完全實現了你之後的事情,以及驗證行爲確實正確的斷言。

因此,您只需繼續添加更多測試的過程,因爲您發現自己需要新功能。這樣,測試會驅動您編寫的代碼,而不是相反。

相關問題