我正在努力弄清楚应该从功能测试中排除什么(在我的例子中,使用 Rails,但我猜框架可能无关紧要)。
我的印象是,我不应该为单元测试中捕获的东西使用功能测试——例如检查一个字段不能有太多字符,或者一个字段不能为空。如果是这种情况,那么肯定应该使用功能测试来测试哪些意外事件,和/或让其他人只进行单元测试的经验法则是什么?
还是这种印象一开始就不正确?
我正在努力弄清楚应该从功能测试中排除什么(在我的例子中,使用 Rails,但我猜框架可能无关紧要)。
我的印象是,我不应该为单元测试中捕获的东西使用功能测试——例如检查一个字段不能有太多字符,或者一个字段不能为空。如果是这种情况,那么肯定应该使用功能测试来测试哪些意外事件,和/或让其他人只进行单元测试的经验法则是什么?
还是这种印象一开始就不正确?
功能测试:它是否做营销/可用性/客户签署的事情?即,如果您的规范明确指出邮政编码文本框只允许有效的美国邮政编码,那么您可能应该在功能测试中对其进行测试。
单元测试:它是否按照开发人员的预期进行?在这些测试中,您应该使用测试替身将代码与依赖项隔离开来。
所以是的,会有某种重叠。
我会通过功能测试“突飞猛进”,而不用担心涵盖所有内容,而是专注于单元测试。
原因:
总而言之,我发现两次覆盖所有内容并没有回报。