单元测试工具Spek、AspectMock、greatest、Buster.JS介绍

以下为你介绍的单元测试工具都可用在Linux系统上:Spek(Java 测试规范框架)、AspectMock(PHP 模拟测试框架)、greatest(C单元测试工具)、Buster.JS(JavaScript 单元测试工具)。

1、Spek(Java 测试规范框架)

Spek 是 JetBrains 开发的 JVM 的一个规范框架,通过优雅的 DSL 来清晰描述你的代码规范,主要用于 Kotlin 语言的测试。

一般的测试代码:

@Test

public void testCalculateTaxRate() {

TaxRateCalculator calculator = new TaxRateCalculator();

Int value = calculator.calculateRate(200, 10);

assertEquals(300,value);

}

使用 Spek 的测试代码:

class TaxCalculatorSpecs: Spek() {{

given("Tax rate calculator with default locale settings") {

val taxRateCalculator = TaxRateCalculator()

on("calculating the rate for an income of 200 and an average change of 10 per semester") {

val value = taxRateCalculator.calculateRate(200, 10)

it("should result in a value of 300") {

assertEquals(300, value)

}

}

}

}}

项目现状:

Spek 2.x是主要的开发分支。

Spek 1.x处于支持模式,只有错误修复和文档更新将合并到1.x分支中。

下载地址:https://github.com/spekframework/spek

2、AspectMock(PHP 模拟测试框架)

单元测试工具Spek、AspectMock、greatest、Buster.JS介绍

AspectMock 不是一个普通的 PHP 模拟测试框架,通过强大的 AOP 面向方面编程理念和神奇的  Go-AOP 库,AspectMock 可以让你在 PHP 代码中进行任意的模拟测试。

使用AspectMock,您几乎可以对任何OOP代码进行单元测试。支持AOP的PHP包含了我们早已缺少的动态语言功能。您不必从头开始重写它以使其可测试。只需将AspectMock与PHPUnit或Codeception一起安装,然后尝试编写一些测试。

特征:

为静态方法创建测试双打。

为在任何地方调用的类方法创建测试双打。

快速重新定义方法。

简单的语法,容易记住。

示例代码:

<?php

function testUserCreate()

{

$user = test::double('User', ['save' => null]));

$service = new UserService;

$service->createUserByName('davert');

$this->assertEquals('davert', $user->getName());

$user->verifyInvoked('save');

}

?>

安装:

1].将Aspect-mock添加到您的composer.json:

{

"require-dev": {

"codeception/aspect-mock": "*"

}

}

2].使用Go! AOP安装作为依赖项:

php composer.phar update

下载地址:https://github.com/Codeception/AspectMock

3、greatest(C单元测试工具)

greatest 是一个 C 语言的单元测试系统,只需要一个文件支持。

示例代码:

$ cat simple.c

#include "greatest.h"

TEST x_should_equal_1() {

int x = 1;

ASSERT_EQ(1, x);                              /* default message */

ASSERT_EQm("yikes, x doesn't equal 1", 1, x); /* custom message */

PASS();

}

SUITE(the_suite) {

RUN_TEST(x_should_equal_1);

}

/* Add definitions that need to be in the test runner's main file. */

GREATEST_MAIN_DEFS();

int main(int argc, char **argv) {

GREATEST_MAIN_BEGIN();      /* command-line arguments, initialization. */

RUN_SUITE(the_suite);

GREATEST_MAIN_END();        /* display results */

}

$ make simple && ./simple

cc -g -Wall -Werror -pedantic    simple.c   -o simple

* Suite the_suite:

.

1 tests - 1 pass, 0 fail, 0 skipped (5 ticks, 0.000 sec)

Total: 1 tests (47 ticks, 0.000 sec)

Pass: 1, fail: 0, skip: 0.

下载地址:https://github.com/silentbicycle/greatest

4、Buster.JS(JavaScript 单元测试工具)

Buster.JS 是 JavaScript 的单元测试工具包:

浏览器测试工具包,Buster.js 可以自动的在浏览器上测试,像 JsTestDriver,QUnit 风格 静态 HTML 页面测试,在一些不知名的浏览器上测试,像 PhantomJS 和 jsdom。

Node.js 测试工具包。

灵活,Buster.js 里面几乎含有所有的公共 API。你可自己书写测试报告来自定义 buster 的输出(buster 里面已经有 xUnit XML、traditional dots、specification、tap、TeamCity),也可以编写扩展其他测试框架(buster 里面已经有 buster-jstestdriver),添加你自己的测试语法(xUnit 和 BDD)。

注明

以上就是单元测试工具Spek、AspectMock、greatest、Buster.JS的介绍内容,这些单元测试工具都能使用在Linux操作系统中。

栏目相关文章