sinevia / php-library-testify

Testify让编写单元测试再次变得有趣。它具有优雅的语法,使事情变得简单

v1.6.0 2019-06-25 05:52 UTC

This package is auto-updated.

Last update: 2024-09-25 18:56:46 UTC


README

Testify是一个PHP的微单元测试框架。

No Dependencies Build status GitHub stars HitCount

特性

  • 没有外部依赖
  • 测试你的代码不再是苦差事,它再次变得有趣
  • 追求优雅而不是功能膨胀

要求

  • 需要PHP 5.3+

安装

  • 通过Composer。 Composer(推荐)
composer require sinevia/php-library-testify
  • 手动。下载并将其添加到项目中

用法

以下是一个包含两个测试用例的测试套件示例

require 'vendor/autoload.php';

use Math\MyCalc;
use Testify\Testify;

$tf = new Testify("MyCalc Test Suite");

$tf->beforeEach(function($tf) {
    $tf->data->calc = new MyCalc(10);
});

$tf->test("Testing the add() method", function($tf) {
    $calc = $tf->data->calc;

    $calc->add(4);
    $tf->assert($calc->result() == 14);

    $calc->add(-6);
    $tf->assertEquals($calc->result(), 8);
});

$tf->test("Testing the mul() method", function($tf) {
    $calc = $tf->data->calc;

    $calc->mul(1.5);
    $tf->assertEquals($calc->result(), 12);

    $calc->mul(-1);
    $tf->assertEquals($calc->result(), -12);
});

$tf();

文档

  • __construct( string $title ) - 构造函数
  • test( string $name, [Closure $testCase = null] ) - 添加测试用例。
  • before( Closure $callback ) - 在运行测试用例之前执行一次
  • after( Closure $callback ) - 在运行测试用例之后执行一次
  • beforeEach( Closure $callback ) - 在每个测试用例运行之前执行
  • afterEach( Closure $callback ) - 在每个测试用例运行之后执行
  • run( ) - 运行所有测试用例和前后函数。调用report()生成HTML报告页面
  • assert( boolean $arg, [string $message = ''] ) - assertTrue()方法的别名
  • assertArray( mixed $arg, [string $message = ''] ) - 如果$arg是数组则通过
  • assertArrayHasKey( mixed $array, array $key, [string $message = ''] ) - 如果$array有$key则通过
  • assertArray( mixed $arg, [string $message = ''] ) - 如果$arg是数组则通过
  • assertEquals( mixed $arg1, mixed $arg2, string [string $message = ''] ) - 如果$arg1 == $arg2则通过
  • assertException( object $classInstance, string $methodName, [string $message = ''] ) - 如果方法抛出Exception则通过
  • assertFalse( boolean $arg, [string $message = ''] ) - 如果给定一个假表达式则通过
  • assertInArray( mixed $arg, array $arr, string [string $message = ''] ) - 如果$arg是$arr的元素则通过
  • assertJson( string $arg, string [string $message = ''] ) - 如果$arg是JSON字符串则通过
  • assertNotArray( mixed $arg, [string $message = ''] ) - 如果$arg不是数组则通过
  • assertNotEquals( mixed $arg1, mixed $arg2, string [string $message = ''] ) - 如果$arg1 != $arg2则通过
  • assertNotArrayHasKey( mixed $array, array $key, [string $message = ''] ) - 如果$array没有$key则通过
  • assertNotInArray( mixed $arg, array $arr, string [string $message = ''] ) - 如果$arg不是$arr的元素则通过
  • assertNotJson( string $arg, string [string $message = ''] ) - 如果$arg不是JSON字符串则通过
  • assertNotNull( string $arg, string [string $message = ''] ) - 如果$arg不是NULL则通过
  • assertNotSame( mixed $arg1, mixed $arg2, string [string $message = ''] ) - 如果$arg1 !== $arg2则通过
  • assertNotStringContainsString( string $string, string $substring, [string $message = ''] ) - 如果$string没有$substring则通过
  • assertNotStringContainsStringIgnoringCase( string $string, string $substring, [string $message = ''] ) - 如果$string没有$substring(不区分大小写)则通过
  • assertNull( string $arg, string [string $message = ''] ) - 如果$arg是NULL则通过
  • assertRegExpr( string $arg1, string $arg2, [string $message = ''] ) - 如果 $arg1 与 $arg2 匹配则通过
  • assertStringContainsString( string $string, string $substring, [string $message = ''] ) - 如果 $string 包含 $substring 则通过
  • assertStringContainsStringIgnoringCase( string $string, string $substring, [string $message = ''] ) - 无论大小写,如果 $string 包含 $substring 则通过
  • assertSame( mixed $arg1, mixed $arg2, string [string $message = ''] ) - 如果 $arg1 === $arg2 则通过
  • assertTrue( boolean $arg, [string $message = ''] ) - 如果给定表达式为真则通过
  • pass( string [string $message = ''] ) - 无条件通过
  • fail( string [string $message = ''] ) - 无条件失败
  • report( ) - 生成测试套件状态的漂亮 CLI 或 HTML5 报告。由 run() 方法隐式调用
  • __invoke( ) - run() 方法的别名