2013-11-01 53 views
0

我被給了一個只有方法頭和簽名的類的家庭作業分配,沒有任何正文。有人可以解釋測試驅動開發方面的JUnit測試嗎?

其中一個要求是爲我寫的JUnit測試每種方法使用測試驅動的開發流程。根據我對TDD方面的單元測試的理解,你想先寫測試FAIL,然後執行PASS測試的代碼。

但是,這是否意味着一旦你創建了失敗的測試,你不必再次修改這些測試,但只修改代碼以使測試通過?

我問這個,因爲如果我寫一個測試,結果在一個編譯錯誤,會發生什麼?

例如,在代碼中,有一個與3個參數用空體,即,沒有變量的初始化的構造函數。

我想要寫一個包含不同的數據類型,然後在參數,使其無法構造一個考驗。但是這會導致編譯錯誤,所以當我實現代碼並初始化變量時,由於數據類型不正確,測試仍然會失敗。

在這種情況下怎麼會在TDD方面的JUnit測試工作?

的感謝!

+0

請顯示您的代碼和測試。我不明白你的意思。 –

回答

0

測試應測試代碼的功能。例如。 Calculater.sum(a,b)計算總和。它不應該測試Java語言(例如構造函數匹配,方法存在,...)

1

我是TDD的一個巨大支持者,但我相信編寫一個不編譯的測試不會提供太多值。

我做TDD的方式如下:

  1. 定義所需要
  2. 寫調用該方法測試
  3. 斷言一些有關的功能編寫測試方法的方法簽名測試方法
    1. 這應該因爲該方法失敗沒有任何功能
  4. 運行測試,並驗證它不能進行正常
  5. 實施代碼,以滿足驗證
  6. 運行測試並驗證其傳遞

接下來,您可以添加額外的驗證,以相同的測試或寫新的測試是針對相同的方法或下一個方法。

在單元測試中,您可以在單個測試中驗證多個事物,但不應該多次調用被測試的方法。即。如果被測試的方法執行5個可驗證的操作,則可以驗證所有在同一測試中的那些操作,如果可以的話不需要多次調用該方法。