guedel/microtest

单元测试微框架

dev-master 2021-03-16 19:13 UTC

This package is not auto-updated.

Last update: 2024-09-29 02:44:38 UTC


README

Microtest 是一个简单的测试框架。你可以用它来进行单元测试和功能测试。

它只需要 PHP 5.4,仅为了使用 lambda 函数和异常。

为什么我写了 Microtest?

对于我的旧 PHP 项目,我没有测试框架,PhpUnit 太复杂且不兼容命令式方法。

我需要一个简单的函数来运行一组非常简单的测试。

现在我在一些项目中使用 Microtest 作为黑盒来测试我编写的新功能。

如何安装?

使用 Composer

进入你自己的项目根目录。现在输入

composer install --dev guedel/microtest

其他方法

使用 Git 或解压缩

如何使用?

只需查看 src/Sampples 文件夹。我已经创建了一个示例测试。没有义务创建 bootstrap 和自动加载文件。

运行测试

使用你的 shell 切换到你的测试文件夹。

在 Windows 命令行中

cd src\Samples

在 Linux shell 中

cd src/Samples

现在使用 php 命令行运行你的测试

php testSample.php

输出如下所示

sample unit test
----------------
1- succeded test: OK
2- failed test: FAIL ((assertion) this must be false)
3- exception test: OK
4- fatal test: FAIL (fatal test.)
interruption required

success: 2 / 5

如果你想运行一系列测试,我建议创建一个 PHP 脚本,它包含你想要的所有测试脚本。

示例

<?php
// File: testAll.php
require 'testSample.php'
require 'testOne.php'
require 'testTwo.php'

创建测试

这不是面向对象的方法。你创建一些函数(命名或 lambda),然后使用 UnitTest::add_test 方法注册它。

在函数中使用 UnitTest 类提供的不同断言方法

你需要做的是

  • 使用 use 指令包含 UnitTest 和 Assert 类
  • 使用 UnitTest::title() 方法给脚本添加一个标题
  • 实例化一个 UnitTest 对象:$ut = new UnitTest()
  • 使用 UnitTest::add_test() 方法添加一些测试函数和一些断言测试
  • 使用 UnitTest::test_all() 方法运行测试

就是这样

测试前和测试后

在你的脚本的全局部分,你可以添加函数、类和实例。你可以使用 global 语句或 magic var $_GLOBAL 来访问它。

示例

$myInt = 10;
$ut = new UnitTest();

$ut->add_test('Int test', function() {
    global $myInt;
    Assert::is_equal(10, $myInt);
    
    // Do some changes
    $myInt = 'ten';
});

$ut->add_test('myInt is integer ?', function() {
    global $myInt;
    Assert::is_true(is_int($myInt));
    
});

$ut->test_all();

你可以这样做。所有测试都是按照它们的注册顺序运行的。