Java学习笔记程序员Android开发

JUnit4之Assertion、Assumption和Theo

2016-05-17  本文已影响546人  桃子妈咪

JUnit4为了帮助程序员更好的表达自己代码意图提供了Assertion、Assumption以及Theory机制,本篇文章从理论、实践上详细分析了这三种机制,希望可以帮助读者更好的理解、同时运用到实际工作中。

新Assertion机制-assertThat

assertThat最初是Joe Walnes在JMock中结合Hamcrest使用的一个新的assertion机制,因为其众多优点,JUnit也引入该机制。Hamcrest 是一个测试的框架,它提供了一套通用的匹配符-Matcher,灵活使用这些匹配符定义的规则,可以帮助程序员更加精确的表达自己的测试意图,指定所想设定的测试条件。

assertThat语法

assertThat([错误提示信息],actualValue,matcher)其中matcher是使用Hamcrest匹配符来表达测试意图。

assertThat优点

如何使用assertThat

assertThat中常用的Matcher

Assumption机制

JUnit4.4结合Hamcrest提供了assumeThat语句,其利用Hamcrest和assumeThat对传入单元测试用例的变量值设计假设条件,如果不满足假设,则跳出该测试用例,执行下一个测试用例;满足则继续执行该测试用例后续语句。

assumeThat语法

assumeThat(actualValue,matcher),同assertThat语法

如何使用assumeThat

Theory机制

为什么需要引入Theory机制

只用一些具体有限的例子来表达程序的行为意图往往不够。有很多代码行为可以很容易而且精确的用语言来描述,却很难用一些简单的例子来表达清楚,因为他们需要大量的甚至无限的具体例子才可以达到被描述清楚的目的,而且有时有限的例子根本不能覆盖所有的代码行为。
Theory的出现就是为了解决该问题,Theory使得开发人员从开始的定义测试用例的阶段就可以通过参数集(理论上是无限个参数)对代码行为进行概括性的总的陈述,我们叫这些陈述为理论。Assert与Assumption结合即可完成Theory的目的。

Theory优点

Test与Theory区别

如何使用Theory

Theory工作过程

上一篇 下一篇

猜你喜欢

热点阅读