知识大全 探索JUnit 4.4 新特性[6]

Posted

篇首语:学如逆水行舟,不进则退。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 探索JUnit 4.4 新特性[6]相关的知识,希望对你有一定的参考价值。

探索JUnit 4.4 新特性[6]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  TDD 的优点

  使得开发人员对即将编写的软件任务具有更清晰的认识 使得他们在思考如何编写代码之前先仔细思考如何设计软件 对测试开发人员所实现的代码提供了快速和自动化的支持 提供了一系列可以重用的回归测试用例(regression test case) 这些测试用例可以用来检测未来添加的新代码是否改变了以前系统定义的行为(测试代码兼容性)

  然而 TDD 也同样具有一定的局限性 对于开发人员来说 只用一些具体有限的简单例子来表达程序的行为往往远远不够 有很多代码行为可以很容易而且精确的用语言来描述 却很难用一些简单的例子来表达清楚 因为他们需要大量的甚至无限的具体例子才可以达到被描述清楚的目的 而且有时有限的例子根本不能覆蓋所有的代码行为

  以下列出的代码行为反映了 TDD 的局限性

  将十进制整数转换成罗马数字 然后再将其转换回十进制数 并保持原有的数值 (需要大量的测试用例 有限的测试数据可能测不出所实现的代码的错误) 对一个对象进行操作 希望结果仍然等于原来的对象 (需要考虑各种各样类型的对象) 在任何一个货币的 collection 中添加一个对象 dollar 需要产生出另外一个新的与以前不同的 collection (需要考虑所有的 collection 类型的对象)

  理论(Theory)的出现就是为了解决 TDD 这个问题 TDD 为组织规划开发流程提供了一个方法 先用一些具体的例子(测试用例 test case)来描述系统代码的行为 然后再将这些行为用代码语句进行概括性的总的陈述(代码实现 implementation) 而 Theory 就是对传统的 TDD 进行一个延伸和扩展 它使得开发人员从开始的定义测试用例的阶段就可以通过参数集(理论上是无限个参数)对代码行为进行概括性的总的陈述 我们叫这些陈述为理论 理论就是对那些需要无穷个测试用例才能正确描述的代码行为的概括性陈述 结合理论(Theory)和测试一起 可以轻松的描述代码的行为并发现 BUG 开发人员都知道他们代码所想要实现的概括性的总的目的 理论使得他们只需要在一个地方就可以快速的指定这些目的 而不要将这些目的翻译成大量的独立的测试用例

  理论机制的优点

  优点 理论(Theory)使得开发完全抽象的接口(Interface)更加容易

  优点 理论仍然可以重用以前的测试用例 因为以前的许多传统的具体的测试用例仍然可以被轻松的改写成理论(Theory)测试实例

  优点 理论(Theory)可以测试出一些原本测试用例没测出来的 bugs 优点 理论允许配合自动化测试工具进行使用 自动化工具通过大量的数据点来测试一个理论 从而可以放大增强理论的效果 利用自动化工具来分析代码 找出可以证明理论错误的值

  下面通过一个简单的例子来逐步介绍理论的优点

  比如设计一个专门用来货币计算的计算器 首先需要给代码行为编写测试用例(这里以英镑 Pound 的乘法为例) 如清单 所示

  清单 英镑 Pound 乘法的一个测试用例

@Testpublic void multiplyPoundsByInteger()     assertEquals( new Pound( ) times( ) getAmount() );

  这时很自然的就会想到一个测试用例可能不够 需要再多一个 如清单 所示

cha138/Article/program/Java/ky/201311/29102

相关参考

知识大全 探索JUnit 4.4 新特性[3]

探索JUnit4.4新特性[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  清单assert

知识大全 探索JUnit 4.4 新特性[2]

探索JUnit4.4新特性[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  优点assert

知识大全 探索JUnit 4.4 新特性[8]

探索JUnit4.4新特性[8]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  清单理论机制举例

知识大全 探索JUnit 4.4 新特性[7]

探索JUnit4.4新特性[7]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  清单英镑Poun

知识大全 探索JUnit 4.4 新特性[5]

探索JUnit4.4新特性[5]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  清单假设机制优点

知识大全 探索JUnit 4.4 新特性[4]

探索JUnit4.4新特性[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  假设机制(Ass

知识大全 探索JUnit 4.4 新特性[1]

探索JUnit4.4新特性[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  文通过理论分析和

知识大全 驾驭“野马”-- 探索Java SE 6的一些新特性

驾驭“野马”--探索JavaSE6的一些新特性  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  s

知识大全 Java SE 6 新特性: Instrumentatio

JavaSE6新特性:Instrumentatio  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 Spring 2.5.6新特性之packagesToScan

Spring2.5.6新特性之packagesToScan  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一