困惑:省略与单元测试相同的功能测试?

时间:2009-05-29 20:03:16

标签: unit-testing functional-testing

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

我的印象是我不应该使用功能测试来处理将在单元测试中捕获的内容 - 例如检查字段不能包含太多字符,或者字段不能是空的。如果是这种情况,应该通过功能测试来测试哪些突发事件,和/或将其他人仅用于单元测试的经验法则是什么?

或者这种印象是不正确的?

我看过了 thisthis 但我还是不知所措。

2 个答案:

答案 0 :(得分:7)

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

单元测试:开发人员期望它能做什么?在这些测试中,您应该使用测试双精度将代码与依赖项隔离开来。

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

答案 1 :(得分:3)

我会通过功能测试来实现功能,而不用担心覆盖所有内容,而是专注于单元测试。

原因:

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

总而言之,我发现两次覆盖所有东西并不值得付出代价。