我的GUI组件的单元测试是否包含比测试中的代码更多的行?

时间:2012-11-03 19:58:08

标签: java unit-testing user-interface mocking

这是一个完整性检查,因为我发现在我们的代码中这是真的。与我们的功能代码不同,状态GUI的测试由于状态设置,组合案例分析以及模拟/伪造邻居/合作者/听众/等等而具有不幸的权重。我错过了什么吗?感谢您的反馈。

注意:

  • 测试在JVM中运行,一切都是POJO。
  • 到目前为止,我们通过增加单位尺寸进行了一些简化:测试更多的胶水粘合在一起。

新笔记:

  • 我们正在使用jUnit和Mockito。

1 个答案:

答案 0 :(得分:5)

  1. 避免代码重复。应提取常用设置代码和操作
  2. 寻找层次结构。不要写一个巨大的测试场景。将公共线组合在一起并将它们提取为有意义的方法。继续构建多层测试场景
  3. 考虑更好的工具。 cucumberFEST assertions,Scala或Groovy作为测试DSL(即使您不在生产代码中使用它们),mockito ...
  4. 除此之外,生产数量和代码测试行之间的关系是无关紧要的。我可以很容易地找到一个极短的代码示例,其中有很多边缘情况需要进行数十次测试。

    real-life example of SQLite(强调我的):

      

    [...]库由大约81.3 KSLOC的C代码组成。 [...]相比之下,该项目的测试代码和测试脚本数量是 1124倍 - 91421.1 KSLOC。

    没错,每行生产代码大约有1100行测试代码。