单元测试工具busted、Baidu iTest、specta、NoSQLUnit介绍

以下为你介绍的单元测试工具都可用在Linux系统上:busted(Lua单元测试框架)、Baidu iTest(基于Junit扩展的测试框架)、specta(TDD/BDD 框架)、NoSQLUnit(NoSQL的单元测试工具)。

1、busted(Lua单元测试框架)

busted 是 Lua 的单元测试框架,用法:busted [OPTIONS] [--] [ROOT-1 [ROOT-2 [...]]],示例代码:

require("busted")

describe("Busted unit testing framework", function()

describe("should be awesome", function()

it("should be easy to use", function()

assert.truthy("Yup.")

end)

it("should have lots of features", function()

-- deep check comparisons!

assert.are.same({ table = "great"}, { table = "great" })

-- or check by reference!

assert.are_not.equal({ table = "great"}, { table = "great"})

assert.true(1 == 1)

assert.falsy(nil)

assert.has.error(function() error("Wat") end, "Wat")

end)

it("should provide some shortcuts to common functions", function()

assert.are.unique({{ thing = 1 }, { thing = 2 }, { thing = 3 }})

end)

it("should have mocks and spies for functional tests", function()

local thing = require("thing_module")

spy.spy_on(thing, "greet")

thing.greet("Hi!")

assert.spy(thing.greet).was.called()

assert.spy(thing.greet).was.called_with("Hi!")

end)

end)

end)

执行结果:

单元测试工具busted、Baidu iTest、specta、NoSQLUnit介绍

下载地址:http://olivinelabs.com/busted/

2、Baidu iTest(基于Junit扩展的测试框架)

ITEST是面向主要的service接口诸如:HTTP,SOAP,JSON-RPC的轻量级自动化测试框架。将参数的输入、请求执行、结果解析、数据验证、数据准备与清理各个环节都做了封装,以数据文本文件为接口,降低自动化测试过程中case书写的难度。

数据驱动测试执行是该框架的主要特征,都体现在case“文件”中:

1].测试输入:接口测试需要输入的参数。

2].数据验证:response的预期字符串,或者验证mysql数据的sql语句。

3].数据准备与清理:构造测试数据的sql,或者service接口。

底层主要使用的是HttpClient+JUnit。

下载地址:https://github.com/baidu/ITEST

3、specta(TDD/BDD 框架)

单元测试工具busted、Baidu iTest、specta、NoSQLUnit介绍

specta 是一个轻量级的 Objective-C 和 Cocoa 的 TDD/BDD 框架。

特征:

类似于Objective-C RSpec的BDD DSL。

快速简便的设置。

建立在XCTest之上。

出色的Xcode集成。

示例:

#import <Specta/Specta.h> // #import "Specta.h" if you're using libSpecta.a

SharedExamplesBegin(MySharedExamples)

// Global shared examples are shared across all spec files.

sharedExamplesFor(@"foo", ^(NSDictionary *data) {

__block id bar = nil;

beforeEach(^{

bar = data[@"bar"];

});

it(@"should not be nil", ^{

XCTAssertNotNil(bar);

});

});

SharedExamplesEnd

SpecBegin(Thing)

describe(@"Thing", ^{

sharedExamplesFor(@"another shared behavior", ^(NSDictionary *data) {

// Locally defined shared examples can override global shared examples within its scope.

});

beforeAll(^{

// This is run once and only once before all of the examples

// in this group and before any beforeEach blocks.

});

beforeEach(^{

// This is run before each example.

});

it(@"should do stuff", ^{

// This is an example block. Place your assertions here.

});

it(@"should do some stuff asynchronously", ^{

waitUntil(^(DoneCallback done) {

// Async example blocks need to invoke done() callback.

done();

});

});

itShouldBehaveLike(@"a shared behavior", @{@"key" : @"obj"});

itShouldBehaveLike(@"another shared behavior", ^{

// Use a block that returns a dictionary if you need the context to be evaluated lazily,

// e.g. to use an object prepared in a beforeEach block.

return @{@"key" : @"obj"};

});

describe(@"Nested examples", ^{

it(@"should do even more stuff", ^{

// ...

});

});

pending(@"pending example");

pending(@"another pending example", ^{

// ...

});

afterEach(^{

// This is run after each example.

});

afterAll(^{

// This is run once and only once after all of the examples

// in this group and after any afterEach blocks.

});

});

SpecEnd

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

4、NoSQLUnit(NoSQL的单元测试工具)

NoSQLUnit 是一个 JUnit 的扩展,用来为那些使用了 NoSQL 后端的应用提供单元测试和集成测试的工具。

要求:

要运行NoSQLUnit,必须提供JUnit 4.10或更高版本。这是因为NoSQLUnit正在使用Rules,并且它们已从以前的版本更改为4.10。尽管它可以与JDK 5一起使用,但jars是使用JDK 6编译的。

使用示例:

@UsingDataSet(locations="my_data_set.json", loadStrategy=LoadStrategyEnum.REFRESH) 

@ShouldMatchDataSet(location="my_expected_data_set.json")

下载地址:https://github.com/lordofthejars/nosql-unit

注明

以上就是单元测试工具busted、Baidu iTest、specta、NoSQLUnit的介绍内容,这些单元测试工具都能使用在Linux操作系统中。

栏目相关文章