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

Posted

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

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

  优点 assertThat 不再像 assertEquals 那样 使用比较难懂的 谓宾主 语法模式(如 assertEquals( x) ) 相反 assertThat 使用了类似于 主谓宾 的易读语法模式(如 assertThat(x is( )) ) 使得代码更加直观 易读

  优点 可以将这些 Matcher 匹配符联合起来灵活使用 达到更多目的 如清单 所示

  清单 Matcher 匹配符联合使用

// 联合匹配符not和equalTo表示 不等于 assertThat( something not( equalTo( developer ) ) ); // 联合匹配符not和containsString表示 不包含子字符串 assertThat( something not( containsString( Works ) ) ); // 联合匹配符anyOf和containsString表示 包含任何一个子字符串 assertThat(something anyOf(containsString( developer ) containsString( Works )));

  优点 错误信息更加易懂 可读且具有描述性(descriptive)

  JUnit 以前的版本默认出错后不会抛出额外提示信息 如

assertTrue( s indexOf( developer ) > || s indexOf( Works ) > );

  如果该断言出错 只会抛出无用的错误信息 如 junit framework AssertionFailedError null

  如果想在出错时想打印出一些有用的提示信息 必须得程序员另外手动写 如

assertTrue( Expected a string containing developer or Works     s indexOf( developer ) > || s indexOf( Works ) > );

  非常的不方便 而且需要额外代码

  JUnit 会默认自动提供一些可读的描述信息 如清单 所示

  清单 JUnit 默认提供一些可读的描述性错误信息

String s = hello world! ;assertThat( s anyOf( containsString( developer ) containsString( Works ) ) );// 如果出错后 系统会自动抛出以下提示信息 java lang AssertionError:Expected: (a string containing developer or a string containing Works )got: hello world!

  优点 开发人员可以通过实现 Matcher 接口 定制自己想要的匹配符 当开发人员发现自己的某些测试代码在不同的测试中重复出现 经常被使用 这时用户就可以自定义匹配符 将这些代码绑定在一个断言语句中 从而可以达到减少重复代码并且更加易读的目的

  如何使用 assertThat

  JUnit 自带了一些 Hamcrest 的匹配符 Matcher 但是只有有限的几个 在类 hamcrest CoreMatchers 中定义 要想使用他们 必须导入包 hamcrest CoreMatchers *

  如果想使用一些其他更多的匹配符 Matcher 可以从 Hamcrest 网页下载 hamcrest library jar 和 hamcrest core jar 并将其加入到工程库中 所有的匹配符都在类 hamcrest Matchers 中定义 要想使用 必须得在代码中 import static hamcrest Matchers * 如果使用外部的匹配符 最好就不要再使用 JUnit 自带的匹配符了 因为这样容易导致匹配符 Matcher 重复定义 编译可能会出错(ambiguous for the type) JUnit 允许使用 Hamcrest 来使用更多的匹配符 这还是 JUnit 第一次允许在自己的工程中使用第三方类

  注意

   assertThat 仍然是断言语句 所以要想使用 必须还得 import static junit Assert *

   虽然 assertThat 可以代替以前所有的断言语句 但是以前的所有 assert 语句仍然可以继续使用 清单 列举了大部分 assertThat 的使用例子

cha138/Article/program/Java/ky/201311/29098

相关参考

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

探索JUnit4.4新特性[3]  以下文字资料是由(全榜网网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

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

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

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

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

知识大全 关于JUnit实现过程详细介绍[2]

关于JUnit实现过程详细介绍[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &n

知识大全 名词解释 什么是JUnit?[2]

名词解释什么是JUnit?[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  写一个测试方法断