单元测试工具Riot、Mockito、JUnit Flux、AUnit介绍

以下为你介绍的单元测试工具都可用在Linux系统上:Riot(Ruby测试框架)、Mockito(Java测试框架)、JUnit Flux(Eclipse 的插件)、AUnit(Ada语言的单元测试)。

1、Riot(Ruby测试框架)

Riot 是一个新的Ruby测试框架,作者是Justin Knowlden。它的主要目的是提高测试的效率。Justin对Riot与Test::Unit进行了比较,测试结果显示Riot比Test::Unit的测试速度快一倍多。

安装命令:

gem install riot

源代码托管在GitHub上,可以通过运行以下命令使用Git获取:

git clone git://github.com/thumblemonks/riot.git

用法:

与其他流行的Ruby测试框架(例如Test::Unit,Shoulda和RSpec)相比,Riot在每次测试之前和之后都不会运行设置和拆卸序列。这样可以大大加快测试的执行速度,但同时也改变了编写测试的方式。总的来说,您应该避免变异任何被测对象,如果您使用Riot,则几乎必须这样做。

在Riot中,测试驻留在上下文中。其中,主题对象是通过设置块定义的。然后使用asserts或denies块进行实际的断言。

context "An empty Array" do

setup { Array.new }

asserts("it is empty") { topic.empty? }

denies("it has any elements") { topic.any? }

end # An Array

如您所见,setup块不使用任何实例变量来保存被测对象,而是以该块的返回值作为主题。然后可以使用topic属性在断言中访问此对象。此外,在其最基本的级别上,断言仅需要返回布尔值。使用断言时,true表示通过,而false表示失败,随后,当使用拒绝时,true表示失败,而false表示成功。

当然,您也可以嵌套上下文。设置块由外而内执行。例如,在允许设置层次结构的当前上下文之前运行父级的设置。拆解块由内而外当前上下文的拆解是在其任何父级之前进行的。这也是您对其他框架的期望。

context "An Array" do

setup { Array.new }

asserts("is empty") { topic.empty? }

context "with one element" do

setup { topic << "foo" }

asserts("array is not empty") { !topic.empty? }

asserts("returns the element on #first") { topic.first == "foo" }

end

end # An Array

顺便说一句,您可以在上下文描述中放置任何类型的ruby object。Riot将在报告上下文中使用实际值之前调用to_s。这个事实将在以后变得有用。

下载地址:https://github.com/thumblemonks/riot

2、Mockito(Java测试框架)

单元测试工具Riot、Mockito、JUnit Flux、AUnit介绍

Mockito是一个针对Java的mocking框架。它与EasyMock和jMock很相似,但是通过在执行后校验什么已经被调用,它消除了对期望行为(expectations)的需要。其它的mocking库需要你在执行前记录期望行为(expectations),而这导致了丑陋的初始化代码。

如何开发Mockito?

要在本地构建:

./gradlew build

要在IntelliJ IDEA中进行开发,您可以使用IDEA中内置的Gradle导入向导。或者使用以下方法生成可导入的IDEA元数据文件:

./gradlew idea

然后,在IDEA中打开生成的*.ipr文件。

下载地址:https://github.com/mockito/mockito

3、JUnit Flux(Eclipse 的插件)

JUnit Flux 是一个 Eclipse 的插件,当保存 Java 类或者测试用例时自动执行 JUnit 的测试方法。

4、AUnit(Ada语言的单元测试)

AUnit 是 Ada 编程语言的单元测试工具,类似于 JUnit。

注明

以上就是单元测试工具Riot、Mockito、JUnit Flux、AUnit的介绍内容,这些单元测试工具都能使用在Linux操作系统中。

栏目相关文章