Vue.js应用测试
上QQ阅读APP看书,第一时间看更新

1.2.4 有效地组合测试类型

如果你以正确的比例将糖、面粉和黄油混合,你会得到美味的曲奇饼干。但如果使用错误的比例混合,你将会得到粉状牛奶。你需要将不同类型的测试以正确的比例组合在一起,以确保你拥有一个强大的测试套件,而不是一堆杂乱的测试代码。

在图1.2中,你可以看到前端测试金字塔。它展现了不同测试类型在前端测试套件中所占的比例。根据我的经验,这是构建前端Vue应用程序测试套件的最佳方式。

图1.2 测试金字塔,单元测试应占大部分比例

测试金字塔的大部分由单元测试组成,它们在开发应用程序时可以提供快速反馈。快照测试运行也很快,但它们比单元测试涵盖范围更广,因此你不需要太多的快照测试。

如前所述,端到端测试对验证应用程序非常有用,但它们可能很慢而且不稳定。避免flaky测试的最佳方法就是不要编写它们,因此前端测试金字塔中包含的端到端测试并不多。

没有集成测试

如果你是一位经验丰富的开发人员,你可能听说过集成测试。集成测试是另一种类型的测试,通常与单元测试和端到端测试结合使用。

我不建议为前端代码编写集成测试。前端的集成测试很难定义、编写及调试。

人们定义集成测试的方式并不相同,尤其是对于前端。有些人认为在浏览器环境上运行的测试是集成测试;有些人认为对具有模块依赖性的单元进行的任何测试都是集成测试;也有些人认为任何完全渲染的组件测试都是集成测试。

在第13章中,我将教授如何编写服务端的集成测试(用我自己的定义方式),以确保服务端正确响应HTTP请求。但是对于本书中的前端测试,你不需要编写任何集成测试。

在本书中,你将按照前端测试金字塔的结构创建一个测试套件。我将遵循测试驱动开发的工作流程教你编写测试套件。你需要了解测试驱动的工作流程并理解本书中的代码是如何构建的,这一点非常重要。