不怕被大家笑话,刚才同事手上拿到《测试驱动开发实用指南》这本书时,我还以为是驱动开发方面的书籍呢,仔细翻了一下才知道不是。这本书的英文名称是《Test-Driven Development》,这里的Driven是动词,书名的意思是由测试来带动开发。那什么是Test-Driven Development,在我看来这是一种开发方式,是一种编程理念。就像作者说的一样。他比咖啡因更容易让人上瘾。一旦你“陷入”其中,你将且仅将通过这种方式编程。他是一种这样的开发方式:
当然要实现这种编程方式的转变也并非易事,但一旦我们做了,就将慢慢的把它变成一种习惯,就像作者说的,它很容易让人上瘾。
- Maintain an exhaustive suite of Programmer Tests。维护一套详尽无疑的编程测试。你不得不不断的编写测试去确保你能分类展示恰当的行为。没有测试通过的编程测试,就没有代码的编写。你先编写测试,再编写通过这些测试的代码。系统中不存在没有经过测试响应的代码。
- No code goes into production unless it has associated tests。极限编程的信条之一就是:一个特点不会存在直到有一系列与之相关的测试。系统中的都是经过充分测试的代码能给我们信心。
- Write the tests first。当你有个任务需要完成的时候,你需要先写出测试这些功能的测试代码,再完成这些功能自身的代码。
- Tests determine what code you need to write。仅仅写出那些需要通过最后测试的代码,花少量的时间在你将要写的代码上。你只写出足够通过测试的代码,不要再多。那意味着你做能够工作的最简单的事。
当然要实现这种编程方式的转变也并非易事,但一旦我们做了,就将慢慢的把它变成一种习惯,就像作者说的,它很容易让人上瘾。