上QQ阅读APP看书,第一时间看更新
1.2.5 测试驱动开发
测试驱动开发(TDD)是一种在编写源代码之前先编写测试代码的工作流程,即在组件中编写代码之前,你需要先编写能够确保组件正常运行的测试代码。
“红、绿、重构”是一种很流行的TDD方法。红代表编写一个不能通过的测试,绿代表让测试通过,在测试通过后,通过重构增强代码可读性。
以这样的方式开发应用程序会有如下好处。首先,你只编写测试功能的源代码,从而保持较少的源代码量;其次,它可以使你在编写代码之前先考虑组件设计。
注释 我承认TDD并不适合所有人,也并不想强迫你一定使用它。你无须膜拜TDD同样也可以从本书中受益。本书使用TDD的主要原因是该方法将测试代码优先于源代码,这符合本书的主旨,测试代码比源代码更重要。
我们可以通过不同的方式实现TDD。本书遵循一套聚焦前端的TDD。
一些TDD拥护者会在编写源代码之前编写好所有的测试代码。我没有那么严苛地遵守TDD,只是在编写源代码之前编写好单元测试代码,但我会在源代码编写之后添加端到端测试和快照测试。通常我编写一个Vue组件的顺序如下:
1)确定需要编写的组件。
2)为每个组件编写单元测试和源代码。
3)调整组件的样式。
4)为已完成的组件添加快照测试。
5)在浏览器中手动测试代码。
6)编写端到端测试。
我在实际工作中,有时不会为组件编写单元测试,有时会在编写测试之前编写组件代码。TDD的拥护者对此可能会感到惊恐万分,但我发现严苛的TDD方法可能会减缓开发速度。
俗话说生活就像一场旅程,不必在乎目的地。虽然对生活来说这可能是正确的,但对开发应用程序来说却恰恰相反,只要是编写可节省时间的、有价值的测试就可以,如何编写无关紧要。
到目前为止,我说完自动化测试的好处了,但是在你兴奋地要创建一个自动化测试俱乐部之前,有一个免责声明,那就是自动化测试并不总是必要的。