這是需要嗎?有人爲pojos做過測試嗎?
回答
Pojos仍然可能包含邏輯錯誤。
當然這是必要的。所有必須工作的代碼都必須經過測試。
當然,你還會做什麼測試用例?
我喜歡做Test Driven Development,它很多關於測試你的pojos(呃,其實它關於設計你的pojos)。
通常情況下。如果你的模型沒有按預期工作,你將會遇到很多麻煩......
在光明的一面,測試它們會容易得多。
如果您的PoJos包含對您的業務非常重要的邏輯,那麼當然,測試它們。
如果他們不這樣做,那麼不要打擾。有時候在沒有測試的情況下離開課程很重要,因爲它可以讓您自由地在以後重構它。
我爲除了簡單的getter和setter之外的所有東西都寫了明確的測試。
如果getter或setter只包含return blah;或this.blah = blah;我認爲沒有太大的價值。大部分時間都是這些產生的,我覺得將測試結合在一起的時間可以更好地花在其他地方。
我的確除了吸氣和吸氣。你必須在某處畫線。
當然,如果它們包含「任務關鍵」代碼,您將需要測試它們。
很容易說「當然」。但是,這是爲什麼:在真正的軟件中,你有層層組件。很容易地說,在堆棧底部的小小的pojos太小而不能有真正的錯誤,但是當你在軟件中遇到意想不到的結果,並且將所有涉及未經徹底測試的代碼相加時,整個Jenga一堆嫌疑人。但是,如果您在構建高級功能之前測試較低級別的例程,那麼當出現問題時,您就知道應該在哪裏查看(即,在低級別例程上重新運行測試之後,確保某些東西沒有改變)。
還要記住,爲您的pojos編寫測試應該相對容易,因爲模塊提供的功能越少,測試的功能就越少。
我同意不測試getter和setters。
POJO通常在某些情況下進行測試。如果你想執行一些邏輯,必須正確測試(理想情況下在開始邏輯實現之前)。至於吸血鬼和二傳手;測試它們通常不是必需的,因爲覆蓋率是通過測試邏輯來獲得的:-)嘗試檢查一些覆蓋率報告工具,如Cobertura,Clover或嘗試Emma,看看需要測試什麼。我真的很喜歡Clover報告,顯示代碼中最危險的威脅。
我認爲這個問題對術語有些困惑。 POJO(普通Java對象)指的是一個Java對象,它不依賴於特定應用程序服務器或第三方庫的依賴關係。使用像Spring這樣的良好的IOC(Inversion Of Control)框架,可以將所有的類編寫爲POJO,這樣您就可以獨立測試它們,而無需在測試中啓動應用服務器。
Java bean是一個簡單的Java類,它包含私有屬性和公共getBlah()和setBlah()存取方法,而沒有其他很多。 Java bean本質上是POJO。
所以如果問題是「我應該測試我的POJO(包含業務邏輯)嗎?」答案是強調是的。
如果問題是「我應該測試我的Java bean(它們是沒有行爲的簡單值對象)嗎?」答案可能不是。
不,我不考的POJO因爲:
1.-如果POJO包含buseness邏輯,我從POJO提取出來,當然,我測試了。但是那個測試已經不在POJO中。
2.-如果POJO不包含它,即simple/getters/setters方法,我在構建時或運行時動態生成它(CGLIB)。所以我測試我的代碼生成器,但不是我的POJO。
因此,正如其他人在此提到的那樣,是的,您需要測試它們。但是,如果您是通過TDD設計需求創建它們的,那麼一旦您運行代碼覆蓋率工具,就會發現這些POJO(或POCO對於我們.net窺視)實際上將被覆蓋。這是因爲TDD只允許你編寫/重構由某些單元測試驅動的代碼。
這使得TDD比單元測試更好,恕我直言。
那麼,還有另一個維度,人們似乎被省略了。
是的,當你想到POJO時,只有任何人的想法是相應的getter和setter屬性。但是,除此之外,POJO還可以在重寫的equals()和hashCode()方法的幫助下同樣貢獻於Collections中。 :)在這種情況下,我的POJO值得進行體面測試! :)
您應該使用不同的可能值測試不同的時間,並確保equals()和hashCode()組合不會提供重複值!
你需要做的,即使是「純」的getter和setter這些原因:
- 代碼覆蓋 - 如果你使用了CC的工具,那麼你會想增加你的覆蓋面
- 一些在未來的時間有人可能會決定把一些邏輯在你的getter和setter方法之一,那麼你的測試可能會失敗讓下發展調整測試(提高警覺性)
將是不錯的自動有一個工具生成這些測試雖然...
- 1. 應該測試@Entity Pojos嗎?
- 2. 有人試過SoftiWARP嗎?
- 3. 測試人員做什麼?
- 4. 從delphi生成php - 有人做過嗎?
- 5. 有人使用surefire POJO測試嗎?
- 6. SecureUDID有人對它進行過廣泛的測試嗎?
- 7. 有人使用Sikuli作爲測試工具嗎?
- 8. 我在做這些單元測試嗎?
- 9. 有沒有人用RSpec測試過best_in_place測試幫助器方法?
- 10. 做驗收測試時,GUI的測試實際顯示它嗎?
- 11. 如果你已經做過功能測試,你需要做單元和集成測試嗎?
- 12. 有人可以解釋測試驅動開發方面的JUnit測試嗎?
- 13. 高效整合Roundcube郵件 - 字面意思 - 有人做過嗎?
- 14. 有人在Dart做類樹嗎?
- 15. 有人可以幫我做分頁嗎?
- 16. RoboGuice將POJOs注入POJOs
- 17. 有人用過CppUnitLite2 1.1嗎?
- 18. 有人使用過AspectMap嗎?
- 19. 我可以做Spotify應用程序的有限測試版嗎?
- 20. 沒有TDD可以做單元測試嗎?
- 21. 單元測試私有方法是一種好的做法嗎?
- 22. 有沒有人成功運行過對FireFox 4的WatiN測試?
- 23. 有裝配測試儀嗎?
- 24. 有人能夠在IE7中測試我的網站結帳嗎?
- 25. 有人可以解釋這個扭曲的單元測試嗎?
- 26. 僅通過JS進行人格測試?
- 27. 有人爲在Orchard CMS上運行的網站做SEO嗎?
- 28. 有人可以解釋令人困惑的單元測試代碼嗎?
- 29. 機器人4.1中機器人測試後有必要使用tearDown方法嗎?
- 30. Java Jackson JSON沒有POJOs
聽起來像羅納德認爲「pojos」只是價值的對象。 – 2008-09-18 14:01:20