9

我正在努力弄清楚应该从功能测试中排除什么(在我的例子中,使用 Rails,但我猜框架可能无关紧要)。

我的印象是,我不应该为单元测试中捕获的东西使用功能测试——例如检查一个字段不能有太多字符,或者一个字段不能为空。如果是这种情况,那么肯定应该使用功能测试来测试哪些意外事件,和/或让其他人只进行单元测试的经验法则是什么?

还是这种印象一开始就不正确?

我已经看过 这个这个 ,但我仍然不知所措。

4

2 回答 2

7

功能测试:它是否做营销/可用性/客户签署的事情?即,如果您的规范明确指出邮政编码文本框只允许有效的美国邮政编码,那么您可能应该在功能测试中对其进行测试。

单元测试:它是否按照开发人员的预期进行?在这些测试中,您应该使用测试替身将代码与依赖项隔离开来。

所以是的,会有某种重叠。

于 2009-05-29T20:15:26.510 回答
4

我会通过功能测试“突飞猛进”,而不用担心涵盖所有内容,而是专注于单元测试。

原因:

  • 功能测试很慢
  • 功能测试难以编写和维护
  • 除了单元测试之外,功能测试只能捕获两个额外的项目:
    • 图形用户界面错误
    • 跨层错配

总而言之,我发现两次覆盖所有内容并没有回报。

于 2009-05-29T20:28:21.027 回答