1.2.5 测试驱动开发

测试驱动开发(TDD)是一种在编写源代码之前先编写测试代码的工作流程,即在组件中编写代码之前,你需要先编写能够确保组件正常运行的测试代码。

“红、绿、重构”是一种很流行的TDD方法。红代表编写一个不能通过的测试,绿代表让测试通过,在测试通过后,通过重构增强代码可读性。

以这样的方式开发应用程序会有如下好处。首先,你只编写测试功能的源代码,从而保持较少的源代码量;其次,它可以使你在编写代码之前先考虑组件设计。

注释 我承认TDD并不适合所有人,也并不想强迫你一定使用它。你无须膜拜TDD同样也可以从本书中受益。本书使用TDD的主要原因是该方法将测试代码优先于源代码,这符合本书的主旨,测试代码比源代码更重要。

我们可以通过不同的方式实现TDD。本书遵循一套聚焦前端的TDD。

一些TDD拥护者会在编写源代码之前编写好所有的测试代码。我没有那么严苛地遵守TDD,只是在编写源代码之前编写好单元测试代码,但我会在源代码编写之后添加端到端测试和快照测试。通常我编写一个Vue组件的顺序如下:

1)确定需要编写的组件。

2)为每个组件编写单元测试和源代码。

3)调整组件的样式。

4)为已完成的组件添加快照测试。

5)在浏览器中手动测试代码。

6)编写端到端测试。

我在实际工作中,有时不会为组件编写单元测试,有时会在编写测试之前编写组件代码。TDD的拥护者对此可能会感到惊恐万分,但我发现严苛的TDD方法可能会减缓开发速度。

俗话说生活就像一场旅程,不必在乎目的地。虽然对生活来说这可能是正确的,但对开发应用程序来说却恰恰相反,只要是编写可节省时间的、有价值的测试就可以,如何编写无关紧要。

到目前为止,我说完自动化测试的好处了,但是在你兴奋地要创建一个自动化测试俱乐部之前,有一个免责声明,那就是自动化测试并不总是必要的。