单元测试工具truth、gjstest、Easy GWT Mock、FBMock介绍

以下为你介绍的单元测试工具都可用在Linux系统上:truth(测试框架)、gjstest(单元测试框架)、Easy GWT Mock(GWT 模拟测试框架)、FBMock(PHP 模拟框架)。

1、truth(测试框架)

Truth 是一个用于测试的 assertion/proposition 框架。它能够用来取代 JUnit's assertions、FEST、Hamcrest's matchers 等情况。

下载地址:https://github.com/google/truth

2、gjstest(单元测试框架)

gjstest(Google JS Test)是在 V8 引擎上快速运行 javascript 单元测试框架的工具,且不需要用户启动完整的浏览器。当然,假如你在 V8 上面测试的时候没有浏览器也没有 DOM 的话,你可以使用本工具来完成测试。

特征如下:

能够极快的启动测试和执行测试,且不需要运行浏览器。

输出可读的测试结果,测试失败也可读、明了。

一个基于浏览器的测试运行工具能够随 JS 的变化而变化。

风格和语义都类似 C++风格。

内置模拟框架,所以只需要极少的代码即可完成测试。

代码示例:

function UserInfoTest() {

// Each test function gets its own instance of UserInfoTest, so tests can

// use instance variables to store state that doesn't affect other tests.

// There's no need to write a tearDown method, unless you modify global

// state.

//

// Create an instance of the class under test here, giving it a mock

// function that we also keep a reference to below.

this.getInfoFromDb_ = createMockFunction();

this.userInfo_ = new UserInfo(this.getInfoFromDb_);

}

registerTestSuite(UserInfoTest);

addTest(UserInfoTest, function formatsUSPhoneNumber() {

// Expect a call to the database function with the argument 0xdeadbeef. When

// the call is received, return the supplied string.

expectCall(this.getInfoFromDb_)(0xdeadbeef)

.willOnce(returnWith('phone_number: "650 253 0000"'));

// Make sure that our class returns correctly formatted output.

expectEq('(650) 253-0000', this.userInfo_.getPhoneForId(0xdeadbeef));

});

addTest(UserInfoTest, function returnsLastNameFirst() {

expectCall(this.getInfoFromDb_)(0xdeadbeef)

.willOnce(returnWith('given_name: "John" family_name: "Doe"'));

// Make sure that our class puts the last name first.

expectEq('Doe, John', this.userInfo_.getNameForId(0xdeadbeef));

});

下载地址:https://github.com/google/gjstest

3、Easy GWT Mock(GWT 模拟测试框架)

单元测试工具truth、gjstest、Easy GWT Mock、FBMock介绍

Easy GWT Mock 是类似 EasyMock 的GWT(Google Web Toolkit)模拟测试框架。Easy GWT Mock 相比 EasyMock 有三个不同点:

Easy GWT Mock 专注于模拟测试界面。

可以创建一个界面扩展 MockControl 到特定类型。

不使用静态方法记录异常。

在您的项目中集成Easy GWT Mock:

签出源代码并执行:

ant -Dgwt.home=/path/to/gwt jar

来构建Easy GWT Mock jar。在项目的out目录中包含jar,然后将以下行添加到应用程序的gwt.xml文件中:

<inherits name='com.google.gwt.testing.easygwtmock.EasyGwtMock'/>

至此,您已经准备好使用Easy GWT Mock。

下载地址:https://github.com/google/easy-gwt-mock

4、FBMock(PHP 模拟框架)

单元测试工具truth、gjstest、Easy GWT Mock、FBMock介绍

FBMock 是一个简单易用的 PHP 模拟测试框架 (PHP Mocks Framework)。不同于其他的模拟测试框架一样,FBMock 只是 stubs with spies,它并没有使用常见的 DSL 和也不依赖于 opaque tear-down 验证方式。

要求:

HHVM或PHP 5.4+。

注意:框架的测试使用PHPUnit,但是使用FBMock不需要PHPUnit。

用法:

包括用于设置自动加载器的init.php:

require_once YOUR_FBMOCKS_DIR.'/init.php'

使用Composer安装(可选):

要通过composer安装此软件包,只需添加需要的软件包并开始使用即可:

{

"require": {

"facebook/fbmock": "*@dev"

}

}

创建一个模拟:

mock('Foo')

另外,您可以用相同的方式模拟接口:

mock('IFoo')

Stubbing:

默认情况下,所有方法都返回null。用于配置返回值的辅助方法以'mock'开头:

mock('Foo')->mockReturn('bar', 'return value here');

有时,您需要的控制权要超过模拟返回:

mock('Foo')->mockImplementation(

'bar',

function ($bar_type) {

return $bar_type == 1;

}

);

对于其他助手(mockThrow,mockReturnThis等),请参见Mock.php。

下载地址:https://github.com/facebookarchive/FBMock

注明

以上就是单元测试工具truth、gjstest、Easy GWT Mock、FBMock的介绍内容,这些单元测试工具都能使用在Linux操作系统中。

栏目相关文章