2013-10-27 161 views
0

我進入了一點測試,但我仍然不知道爲什麼我應該在我的應用程序中。 可以說我有這個類什麼是測試點

class Human 

    attr_accessor :age 

    def initialize 
    @age = 0 
    end 
end 

和本次測試

describe Human do 
    kid = Human.new 
    kid.age.should == 0 
end 

測試通過,每個人的幸福。但是我們真的完成了什麼?這當然是非常簡單的例子,但它表達了我的意思。像這樣的測試信息可以爲我提供什麼?

+0

您測試得越多,其價值越明顯。 –

回答

3

在你的榜樣,代碼是如此的微不足道,測試是遠遠更多的麻煩比它的價值。如果你會寫出非常簡單的應用程序(如果它完成了任務就沒有問題),那就這樣吧。

大部分在現實世界中的時間,雖然,你需要編寫測試有以下幾個原因:

  • 要爲自己確認代碼工作像您期望的。
  • 幫助找出發生錯誤的位置。您可以查看測試,以查看調用鏈中的哪些組件已經過徹底測試,然後找到不是(針對該案例)。這有助於您重現錯誤並隔離其原因。
  • 允許自動化。一旦寫入,測試可以永久運行在持續集成服務器上。這樣你就知道你在路上做的一些改變並沒有打破曾經工作的東西。
  • 文檔。當人們加入你的項目時,或者當你需要記住爲什麼你做了你幾個月前做的事情時,看看代碼要好得多,而不是閱讀很多的文檔文本,可能不是最新的。測試顯示組件應該如何工作和交互。
  • 有時當我想寫一些代碼時,我實際上不確定它應該如何看,以及API應該是什麼。編寫一個測試第一幫助我沖洗的是API,並找出什麼,我需要做的。

當然,測試需要便宜,因此隨着功能的發展它們可以被丟棄。他們還需要快速運行,並且有大量關於如何做到這一點的文獻。很多團隊在測試中都很糟糕,所以他們不再那麼做了。如果你擅長,但不難,測試非常強大。

希望有所幫助。

+4

如果您進入TDD,測試也將影響您編寫代碼的方式和您編寫的代碼種類。 – numbers1311407

+0

我其實剛剛在看到你的評論之前就加了一個類似的評論哈哈。感謝您的出色點。 – Vidya