在设置单元测试(在我的情况下,使用Jasmine for JavaScript)时,是否应测试未缩小/未经过验证的src
文件?或者是否应该测试最终用户build
文件(缩小和丑化)?
在我的grunt配置中:
jasmine: {
src: ['src/file.js']
}
VS
jasmine: {
src: ['build/file.min.js']
}
一方面,测试src
文件很不错,因为它不会删除调试器,并且在需要时更容易检查。
另一方面,我可以尽可能多地测试src
文件,但由于build
文件已被更新,因此最终用户将无法运行。并且缩小了。
答案 0 :(得分:7)
你应该像写完的那样对裸源文件进行单元测试。单元测试旨在紧密集中,为您提供即时和清晰的反馈。换句话说,如果您在修改源代码后测试您的功能 - 您不是孤立地测试您的代码;一旦你发现了一个bug,你就无法100%确定是什么导致了它 - 可能是在构建过程中出现了导致问题的问题 - 比如uglify
任务。
我会将测试构建文件归类为集成或更高级别测试的一部分 - 除了测试功能之外,您还要检查应用程序的构建方式:文件如何缩小,复制,连接等。
一般来说,您应该瞄准以下金字塔:
(introduced in this Google Test Automation blogpost)
另一方面,我可以尽可能多地测试src文件,但确实如此 不像最终用户将要运行的那样,因为构建文件是 uglified和minified。
我认为这属于端到端测试类别 - 模仿真实用户,通过验收测试场景,用户故事。