我知道可以在JUnit中使用嚮導創建一個TestCase或TestSuite,但是如果在測試下的類已經被修改之後如何同步代碼,如方法簽名修改或新添加的方法。我希望我的TestCases能夠在我的TestCases中同步(刪除或添加)那些已更改的方法/參數/方法簽名。是否可以使Eclipe中的測試類與JUnit測試用例同步?
我試過在谷歌搜索無濟於事,也許有一個Eclipse的插件呢?
我知道可以在JUnit中使用嚮導創建一個TestCase或TestSuite,但是如果在測試下的類已經被修改之後如何同步代碼,如方法簽名修改或新添加的方法。我希望我的TestCases能夠在我的TestCases中同步(刪除或添加)那些已更改的方法/參數/方法簽名。是否可以使Eclipe中的測試類與JUnit測試用例同步?
我試過在谷歌搜索無濟於事,也許有一個Eclipse的插件呢?
與生產代碼結構具有1-1關係的測試是測試氣味。將測試寫成系統行爲的規範(〜每個行爲一個測試),而不是根據生產代碼生成測試(每個方法一個測試)會更好。
從http://blog.daveastels.com/files/BDD_Intro.pdf
當你意識到它的所有有關規定的行爲,而不是寫測試,貴點的 視圖轉變引用。突然間,爲您的每個生產級別設置一個Test類的想法是可笑的 限制。而用自己的測試方法測試每種方法的想法(在關係中是 )將會是可笑的。
如果使用自動重構更改方法簽名,則測試用例以及調用方法的所有其他代碼將自動更新。
對於新添加的方法,我不知道如何讓測試類自動更新。
如前所述,只要您使用Eclipse工具重構而不是通過手動重命名等重構,重命名或移動等將自動反映到測試用例中。
至於新方法,不可能自動生成測試。當然,自動生成的代碼有一些例外,您可以在其中控制生成,也可以在其中生成測試用例,但對於「普通」手動代碼,最好的做法是提供存根(空方法),以及有什麼用在那裏面?
更好的辦法是使用諸如Cobertura或Emma,這恰好有一個nice Eclipse plugin,讓你看到,你的源代碼中,被測試所覆蓋哪些代碼並且不是一個工具來跟蹤code coverage。這就是你需要進行更多測試的報告。
是的,我看到了,我認爲有可能是代碼覆蓋範圍之外的東西,但我認爲這將做反正:)感謝很多明確的答案 – 2009-07-28 13:38:43
Thx的答覆。在發佈這個問題後不久,我意識到,基於行爲編寫測試是一種方式,因此這就是我正在做的。我現在不需要單元測試同步:)我完全支持這個觀點(單元測試行爲)。加起來,由於方法名稱包含它所測試的行爲,所以讀取測試更容易。 – 2009-10-02 01:30:08