2012-11-03 22 views
6

這是一個完整性檢查,因爲我發現這在我們的代碼中是正確的。與我們的功能代碼不同,由於狀態設置,組合案例分析以及模仿/僞造鄰居/合作者/監聽者等,有狀態GUI的測試具有不可量的權重。我錯過了什麼嗎?感謝您的反饋意見。我的單元測試的GUI組件是否包含比被測代碼更多的行?

注:

  • 的測試運行在JVM中,一切都是POJO。
  • 到目前爲止,我們通過增加單位尺寸來獲得一些簡化:測試更多粘在一起的部分。

新票據:

  • 我們使用JUnit和的Mockito。
+0

你可能想要包括你正在使用的測試API /套件 – pstanton

+0

我認爲一般情況下,除非測試代碼非常簡單和緊湊,否則單元測試往往比他們測試的代碼大得多。真正的問題是:是任何值的GUI的每個部件單元測試?我個人不這麼認爲,但其他人可能會不同意。 – biziclop

回答

5
  1. 避免代碼重複。應提取常見的設置代碼和操作
  2. 查找層次結構。不要寫一個巨大的測試場景。將共同的線條組合在一起,並將它們提取爲有意義的命名方法。繼續構建多層測試場景
  3. 考慮更好的工具。 cucumberFEST assertions,斯卡拉或Groovy作爲測試DSL(即使你沒有在生產代碼中使用它們),mockito ...

除此之外,生產和測試線的數量之間的關係的代碼無關。我可以很容易地找到一個非常短的代碼,它有很多邊緣案例的例子,它需要幾十個測試。

而一個real-life example of SQLite(重點煤礦):

[...]文庫由約81.3 KSLOC的C代碼。 [...]相比之下,該項目有1124倍的測試代碼和測試腳本 - 91421.1 KSLOC。

沒錯,每行生產代碼大約有1100行測試代碼。

相關問題