6

这是一个健全性检查,因为我发现这在我们的代码中是正确的。与我们的功能代码不同,由于状态设置、组合案例分析和模拟/伪造邻居/协作者/侦听器/等,有状态 GUI 的测试具有令人遗憾的权重。我错过了什么吗?感谢您的反馈意见。

笔记:

  • 测试在 JVM 中运行,一切都是 POJO。
  • 到目前为止,我们通过增加单元大小得到了一些简化:测试更多粘合在一起的部分。

新笔记:

  • 我们正在使用 jUnit 和 Mockito。
4

1 回答 1

5
  1. 避免代码重复。应提取通用设置代码和操作
  2. 寻找层次结构。不要编写一个庞大的测试场景。将公共线组合在一起并将它们提取到有意义的命名方法中。继续构建多层测试场景
  3. 考虑更好的工具。 cucumberFEST assertions, Scala 或 Groovy 作为测试 DSL(即使您不在生产代码中使用它们),mockito ...

除此之外,代码的生产行数和测试行数之间的关系是无关紧要的。我可以很容易地找到一个极短的代码示例,它具有如此多的边缘情况,需要进行数十次测试。

还有一个SQLite 的真实示例(重点是我的):

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

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

于 2012-11-03T20:22:39.280 回答