簡體   English   中英

Struts2動作 - 測試與否?

[英]Struts2 action - test it or not?

我目前正在開發一個使用Struts2框架的項目。 我們使用單獨的組件進行數據庫訪問,經過了很好的測試。 與此同時,我們工作的項目有很多未經測試的動作。 在大多數操作中,我們使用至少一個DB服務調用。 所以一方面這些動作非常簡單。 我不確定 - 是否應該為此編寫單元測試?

我認為好的做法總是寫單元測試,但這些操作非常簡單,我現在面臨來自管理方面的巨大壓力。 那么,是否至關重要 - 在沒有單元測試的情況下離開Struts2動作?

以下是編寫單元測試的三個主要原因。

  • 它可以幫助您了解您的代碼現在正常運行。
  • 當將來添加或更改功能時,它有助於保護您的代碼免受回歸錯誤的影響。
  • 如果您在編寫代碼之前編寫單元測試,它會以非常好的方式集中您的設計過程 - 閱讀TDD以了解有關執行此操作的好處的更多信息。

因此,問問自己,編寫單元測試的這三個原因是否適用於此。 如果所有三個問題的答案都是“否”,那么請考慮編寫單元測試的成本,並將其保留在代碼庫中。 將此成本與可能的收益進行比較。 做出明智的決定,決定是否應該編寫單元測試,並准備好向經理辯護。

但是,不要帶有一個先入為主的觀念,即“每個班級的單元測試總是好的”。 並且沒有相反的觀念 - “單元測試總是不必要的”。 兩者都不是真的。

我和Dhanji Prasanna一起在Guice和Google Wave工作。 它不是100%的覆蓋率,而是編寫有價值的測試,以有助於開發和防止代碼回歸的方式為正確的組件提供正確的反饋。

對於我的一個Struts2應用程序,我們有非常復雜的數據驗證要求。 數千人。 我們使用struts2-junit-plugin在Spring 3 IoC和Struts2驗證的集成上下文中測試動作類,並使用自定義機制來填充具有大量不同數據場景的模擬請求。 這些測試在開發期間和作為維護工具都是非常寶貴的。

但是對於我們的一些簡單操作,與寫入它們所花費的時間相比,我看不到回報的價值。 但是,如果它們非常簡單,它們也不會花太長時間來寫。

我還看到了100%覆蓋率概念導致100%的課程為他們編寫了輕率,毫無價值的測試的情況。 為了我的錢,我投票確定了測試將提供最有價值的領域,並專注於做得非常好。

必須為函數編寫單元測試可能會有問題,但無論如何,將來可能會在將要測試的操作中進行驗證。 測試操作所花費的時間必須是一點點,我建議這樣做,應用程序中的每個層必須具有一些功能,如果不是必須的話,必須檢查架構。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM