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

Posted 函数

篇首语:坚志而勇为,谓之刚。刚,生人之德也。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 探索JUnit 4.4 新特性[4]相关的知识,希望对你有一定的参考价值。

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

  假设机制(Assumption)

  理想情况下 写测试用例的开发人员可以明确的知道所有导致他们所写的测试用例不通过的地方 但是有的时候 这些导致测试用例不通过的地方并不是很容易的被发现 可能隐藏得很深 从而导致开发人员在写测试用例时很难预测到这些因素 而且往往这些因素并不是开发人员当初设计测试用例时真正目的 他们的测试点是希望测试出被测代码中别的出错地方

  比如 一个测试用例运行的 locale(如 Locale US)与之前开发人员设计该测试用例时所设想的不同(如 Locale UK) 这样会导致测试不通过 但是这可能并不是开发人员之前设计测试用例时所设想的测试出来的有用的失败结果(测试点并不是此 比如测试的真正目的是想判断函数的返回值是否为 true 返回 false 则测试失败) 这时开发人员可以通过编写一些额外的代码来消除这些影响(比如将 locale 作为参数传入到测试用例中 每次运行测试用例时 明确指定 locale) 但是花费时间和精力来编写这些不是测试用例根本目的的额外代码其实是种浪费 这时就可以使用 Assumption 假设机制来轻松达到额外代码的目的 编写该测试用例时 首先假设 locale 必须是 Locale UK 如果运行时 locale 是 Locale UK 则继续执行该测试用例函数 如果是其它的 locale 则跳过该测试用例函数 执行该测试用例函数以外的代码 这样就不会因为 locale 的问题导致测试出错

  JUnit 结合 Hamcrest 库提供了 assumeThat 语句 开发人员可以使用其配合匹配符 Matcher 设计所有的假设条件(语法和 assertThat 一样) 同样为了方便使用 JUnit 还专门提供了 assumeTrue assumeNotNull 和 assumeNoException 语句

  假设机制(Assumption)的优点

  优点 通过对 runtime 变量进行取值假设 从而不会因为一个测试用例的不通过而导致整个测试失败而中断(the test passes) 使得测试更加连贯

  开发人员编写单元测试时 经常会在一个测试中包含若干个测试用例函数 这时若是遇到某个测试用例函数不通过 整个单元测试就会终止 这将导致测试不连贯 因为开发人员往往希望一次能运行多个测试用例函数 不通过的测试用例函数不要影响到剩下的测试用例函数的运行 否则会给 debug 调试带来很大的难度

  开发人员编写单元测试时 有时是预测不了传入到单元测试方法中的变量值的 而且这些值有时并不是开发人员所期望的 因为他们会导致测试用例不通过并中断整个测试 所以开发人员需要跳过这些导致测试用例函数不通过的异常情况

  清单 假设机制优点 举例

//@Test 注释表明接下来的函数是 JUnit 及其以后版本的测试用例函数@Testpublic void testAssumptions()     //假设进入testAssumptions时 变量i的值为 如果该假设不满足 程序不会执行assumeThat后面的语句    assumeThat( i is( ) );    //如果之前的假设成立 会打印 assumption is true! 到控制台 否则直接调出 执行下一个测试用例函数    System out println( assumption is true! );

  优点 利用假设可以控制某个测试用例的运行时间 让其在自己期望的时候运行(run at a given time)

cha138/Article/program/Java/ky/201311/29100

相关参考

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

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

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

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

知识大全 Eclipse中建立自己的JUnit测试[4]

Eclipse中建立自己的JUnit测试[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  现

知识大全 使用Ant编译、运行Junit、以及检查编码[4]

使用Ant编译、运行Junit、以及检查编码[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&