由於這是強烈推薦的,我讀書,我已經開始寫測試,每個我創建的類的書籍之一。我不確定什麼是一個好的做法來覆蓋制定者和獲得者。如果是的話,我不知道該如何驗證setter方法,因此需要調用此變量的getter,反之亦然。所以你永遠不會知道實際問題在哪裏。 我去過的地方就是對制定者和獲得者的類似測試。的JUnit getter和setter
回答
如果您關心的是覆蓋範圍指標,那麼設置者和獲取者可能會讓您失望。無論是
,你一定要對其進行測試,特別是如果他們做的比設置或獲取更多。
此外,它可以測試設置/獲得一個測試。如果道具是私人的,那麼你必須這樣做,除非有一套的副作用。或者你可以在測試其他方法時隱式測試它們。例如,如果您正在測試DAO,那麼當您編寫testSave方法時,可以使用setter和getter ...
爲了使生活更輕鬆,您可能可以編寫基於反射的測試實用程序來測試setter和干將。或者只寫簡單的測試,它並不難或費時的,雖然它是無聊...
有很多的選擇在這裏...
如果你的getter和setter方法只是獲取和設置支持變量,然後編寫單元測試對他們來說並沒有提供多少價值,你基本上測試的語言和編譯器在做什麼,他們應該。
重點在於測試該行爲是否按預期工作。如果你設置了屬性A,那麼就意味着屬性B現在應該有不同的值,這可能值得進行單元測試。
寫單元測試一般原則是,如果你的測試類包含邏輯。
即使你有一個委託邏輯(業務層調用dao層),我會建議爲它編寫測試。
至於值對象(POJO的或該事項),你能避免單元測試。
但是,如果你想測試那些對象 - 使用反射。
您可以使用反射設置字段並查看getter返回的內容。您可以使用setter來設置字段,然後再次使用反射來檢查該值。
測試驅動開發的哲學說「測試所有可能會破壞的東西」。
getter和setter方法是微不足道的代碼,併爲你您IDE經常產生。希望IDE的開發人員已經測試過該代碼,因此您不必這樣做。唯一的情況是我會打擾測試getter的是,如果他們做的不僅僅是set/get。
爲您的業務邏輯編寫測試,而不是爲了編寫測試而進行測試。
...如果他們「不僅僅是設置/獲得」,他們並不是真正的最嚴格意義上的制定者/獲取者。使用只有raw訪問器具有這些名稱的代碼才更容易;你可以看看這個名字,並知道,「這只不過是設置/獲得」。 – 2010-10-26 18:46:53
好點卡爾 – willcodejavaforfood 2010-10-26 18:48:11
如果您練習TDD(測試驅動設計),則只有在您需要時纔會出現設置者和獲取者 - 您不僅僅是自動創建它們以防萬一。在這種情況下,訪問者的需求通常會在已經失敗的測試過程中出現,這種測試方法不太簡單。這意味着您的訪問者將被測試,而不是通過特定的測試,但是在測試更廣泛的方法的過程中。這更好;創建訪問者「以防萬一」是愚蠢的,而對於像那樣微不足道的方法編寫測試是愚蠢的。但是讓他們測試覆蓋是很好的。
- 1. Synchronzied Getter和Setter
- 2. getter和setter在
- 3. getter和setter C++
- 4. Getter和setter問題
- 5. Angular 2 Setter和Getter
- 6. Getter和Setter解釋?
- 7. 枚舉setter和getter
- 8. 汽車getter和setter
- 9. setter和getter方法
- 10. 使用getter和setter
- 11. setter和getter公約
- 12. getter和setter風格
- 13. Setter和getter消息
- 14. getter和setter錯誤
- 15. C#6 getter和setter
- 16. 使用getter和setter
- 17. 沒有getter和setter
- 18. Getter和Setter方法
- 19. getter和setter問題
- 20. setter和getter錯誤
- 21. 的JUnit測試:測試對字符串相關的setter和getter
- 22. C++正確的getter和setter
- 23. Java中的Getter和Setter
- 24. 多餘的getter和setter
- 25. PHP的getter和setter混合
- 26. Symfony的 - getter和setter失蹤
- 27. XMLSerializer的特殊getter和setter
- 28. 繼承和getter和setter
- 29. 製作通用getter和setter
- 30. C#getter和setter速記
測試只是爲了實現高覆蓋率的指標就像是獲得每行代碼的支付.. imho ... – 2010-10-26 18:51:05
@alexander我沒說你應該測試指標。我說setter/getters可以殺死指標。我在上面澄清。 – hvgotcodes 2010-10-26 18:52:18