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

Posted

篇首语:君子报仇,十年不晚。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 探索JUnit 4.4 新特性[1]相关的知识,希望对你有一定的参考价值。

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

  文通过理论分析和详细例子向读者阐述 JUnit 所带来的最新特性 读者通过本文的学习 可以轻松掌握使用 JUnit 的新特性

  随着当前 Java 开发的越发成熟 Agile 和 TDD 的越发流行 自动化测试的呼声也越来越高 若想将单元测试变得自动化 自然 JUnit 这把利器必不可少 这也是 JUnit 自 年诞生以来在 Java 开发业界一直相当流行的原因

  JUnit 是针对 Java 语言的一个单元测试框架 它被认为是迄今为止所开发的最重要的第三方 Java 库 JUnit 的优点是整个测试过程无需人的参与 无需分析和判断最终测试结果是否正确 而且可以很容易地一次性运行多个测试 JUnit 的出现促进了测试的盛行 它使得 Java 代码更健壮 更可靠 Bug 比以前更少

  JUnit 自从问世以来一直在不停的推出新版本 目前最新的版本是 年 月发布的 JUnit 它是继 JUnit 以来最大的发行版 提供了很多有用的新特性 本文将假设读者已经具有 JUnit 的使用经验

  JUnit 概述

  JUnit 设计的目的就是有效地抓住编程人员写代码的意图 然后快速检查他们的代码是否与他们的意图相匹配 JUnit 发展至今 版本不停的翻新 但是所有版本都一致致力于解决一个问题 那就是如何发现编程人员的代码意图 并且如何使得编程人员更加容易地表达他们的代码意图 JUnit 也是为了如何能够更好的达到这个目的而出现的

  JUnit 主要提供了以下三个大方面的新特性来更好的抓住编程人员的代码意图

  提供了新的断言语法(Assertion syntax)——assertThat

  提供了假设机制(Assumption)

  提供了理论机制(Theory)

  新的断言语法(Assertion syntax)—— assertThat

  JUnit 学习 JMock 引入了 Hamcrest 匹配机制 使得程序员在编写单元测试的 assert 语句时 可以具有更强的可读性 而且也更加灵活

  Hamcrest 是一个测试的框架 它提供了一套通用的匹配符 Matcher 灵活使用这些匹配符定义的规则 程序员可以更加精确的表达自己的测试思想 指定所想设定的测试条件 比如 有时候定义的测试数据范围太精确 往往是若干个固定的确定值 这时会导致测试非常脆弱 因为接下来的测试数据只要稍稍有变化 就可能导致测试失败(比如 assertEquals( x ) 只能判断 x 是否等于 如果 x 不等于 测试失败) 有时候指定的测试数据范围又不够太精确 这时有可能会造成某些本该会导致测试不通过的数据 仍然会通过接下来的测试 这样就会降低测试的价值 Hamcrest 的出现 给程序员编写测试用例提供了一套规则和方法 使用其可以更加精确的表达程序员所期望的测试的行为 (具体 Hamcrest 的使用 请参阅 参考资料)

  JUnit 结合 Hamcrest 提供了一个全新的断言语法——assertThat 程序员可以只使用 assertThat 一个断言语句 结合 Hamcrest 提供的匹配符 就可以表达全部的测试思想

  assertThat 的基本语法如下

  清单 assertThat 基本语法

assertThat( [value] [matcher statement] );

  value 是接下来想要测试的变量值 matcher statement 是使用 Hamcrest 匹配符来表达的对前面变量所期望的值的声明 如果 value 值与 matcher statement 所表达的期望值相符 则测试成功 否则测试失败

  assertThat 的优点

  优点 以前 JUnit 提供了很多的 assertion 语句 如 assertEquals assertNotSame assertFalse assertTrue assertNotNull assertNull 等 现在有了 JUnit 一条 assertThat 即可以替代所有的 assertion 语句 这样可以在所有的单元测试中只使用一个断言方法 使得编写测试用例变得简单 代码风格变得统一 测试代码也更容易维护

  优点 assertThat 使用了 Hamcrest 的 Matcher 匹配符 用户可以使用匹配符规定的匹配准则精确的指定一些想设定满足的条件 具有很强的易读性 而且使用起来更加灵活 如清单 所示

  清单 使用匹配符 Matcher 和不使用之间的比较

// 想判断某个字符串 s 是否含有子字符串 developer 或 Works 中间的一个// JUnit 以前的版本 assertTrue(s indexOf( developer )> ||s indexOf( Works )> );// JUnit assertThat(s anyOf(containsString( developer ) containsString( Works )));// 匹配符 anyOf 表示任何一个条件满足则成立 类似于逻辑或 || 匹配符 containsString 表示是否含有参数子// 字符串 文章接下来会对匹配符进行具体介绍 cha138/Article/program/Java/ky/201311/29105

相关参考

知识大全 探索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 新特性[6]

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

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

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

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

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

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

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

稻田养鱼技术新探索

稻田养鱼这种水产养殖方式近年来被很多养殖业和种植业业主们讨论和意向开发的项目,如何打造成一定的模式、目标效益、操作过程细节、操作技术等等在我区还在萌芽中,本着为我区有意于稻田养鱼的业主确立开发本产业,

稻田养鱼技术新探索

稻田养鱼这种水产养殖方式近年来被很多养殖业和种植业业主们讨论和意向开发的项目,如何打造成一定的模式、目标效益、操作过程细节、操作技术等等在我区还在萌芽中,本着为我区有意于稻田养鱼的业主确立开发本产业,