2012-01-05 189 views
2

以前已回答過類似問題,但它們並未解決我的問題。測試最佳實踐:對於CRUD api

我正在測試api的創建,讀取,更新和刪除方法。分別測試每個功能被認爲是最好的。但是,

要測試創建,我需要閱讀。 要測試閱讀,我需要創建。 要測試更新,我需要創建和讀取。 測試刪除。我需要創建!

我沒有其他(例如,低層api)驗證除此API本身之外的機制。

在這種情況下,我應該用一切來寫一個長測試嗎?或者4個不同的測試;每個都有特殊的設置和拆卸邏輯。

感謝

回答

1

這是很主觀的,但我會寫四種不同的測試,因爲它會

  • 更容易維護
  • 更容易找到一個可能的錯誤
  • 提高可讀性

可讀性

如果測試所有內容,你會如何命名testmethod?我發現很容易在的CreateShouldCreateARecord代替TestCRUD

形式讀testmethods找到錯誤

可讀性提高,更容易知道錯在哪裏。同樣,對於一個單片方法,您在報告中得到的所有方法都是TestCRUD方法失敗,您將不得不鑽取以發現它是錯誤的實現讀取。

+0

我不喜歡更多的代碼;由於更復雜的設置* 4和拆卸邏輯* 4.但似乎這是確定問題的價格。例如,如果testRead失敗,那麼我應該知道安裝失敗(即寫入失敗)或讀取失敗。 – 2012-01-05 23:17:55

+0

@AsadIqbal - 與所有事情一樣,總是存在一種折衷。在這種情況下和我的個人喜好,這是值得的。 – 2012-01-05 23:22:28

+0

我不同意有關查找錯誤的部分。如果我們記住OP問題,當我看到測試CreateShouldCreateARecord失敗時,我怎麼知道,如果是創建錯誤記錄,或者只是讀取失敗,並給我一個錯誤的否定?我最終看到了BOTH函數和調試的代碼。如果是這樣,我什麼也得不到,而我必須寫更多的設置,拆散等。 – 2012-09-19 10:00:39