测试驱动开发(Test-Driven Development)简称TDD,是以测试作为软件开发的核心,将测试贯穿于软件开发工程的方法论,TDD同时也是XP(极限编程)的核心之一。对Java程序员来说,可能大家都认为就是JUnit,编写TestCase就可以,但是在其背后,Refactor(重构)和Intention Programming(意图编程)却起着非常重要的作用。
重构在两个方面和TDD密切相关:
1 我们采用尽可能简单的方法来让测试通过,在此过程中我们需要引入重构对代码进行整理。
2 我们在软件开发中要经常使用重构手段,TDD可以为重构构建安全网。
在IntelliJ IDEA环境中,重构可以说被演绎的淋漓尽致,实际上测试代码也是代码,当然要牵涉到代码管理,测试代码力求最简单可用,重构在此过程中将发挥很大的作用。
意图编程的一个主要思想是不再把程序源表示为简单的ASCII文本,而是作为可以和程序员在编程时进行交互的活动源,就是一个带有编程行为的图形数据结构。意图编程另一个令人激动的方面就是实现和使用领域特定抽象,将它作为意图,这些意图将在编程中被调用。在IntelliJ IDEA中,意图编程通过Intention Actions来实现,每一个Action都会了解你的意图。Intetion Actions主要提供以下两种功能:修复错误和提供编程捷径。
在TDD开发中,我们编写测试代码的时候,可能需要的功能代码还没有存在,这时我们可以调用Action来修复这些错误,同样通过使用意图编程提供的编程捷径可以很快创建和实现功能代码,这对提高TDD的效率非常有帮助,不管使用何种方式开发,效率始终是非常必要的。
最后说说IntelliJ IDEA对JUnit的支持,IDEA对JUnit的支持非常出色,便捷程度可以说超过其他所有的工具。在自动化测试方面,IDEA可以很方便得整合CruiseControl,第三方的UnitTest插件可以方便创建JUnit的TestCase,并且在测试类与被测试类之间的导航方面也非常快捷。