lamp-of-god/kahlan-isolator-plugin

一个针对 Kahlan 单元测试框架的插件,允许从 PHP 文件中提取函数。

v0.3.0 2017-10-09 13:18 UTC

This package is auto-updated.

Last update: 2024-09-18 22:20:57 UTC


README

此插件允许从 PHP 文件中 'require' 函数并跳过其他代码。

用途是什么?

如果你正在处理老旧的遗留代码,有些情况下单元测试是不可能的,例如,当文件中包含的不仅是函数还有辅助代码。此插件允许你测试文件中的独立函数。

案例示例

例如,你有一个控制器

<?php

if (!authorized()) {
    die('error');
}

do_something();

function to_test() 
{
    return 42;
}

无法测试函数 to_test。你无法简单地 require 文件,因为其中包含可能破坏测试或执行不希望操作的辅助代码。但如果函数 to_test 是独立出来的,那么测试它将会是好的。

用法

使用此插件你可以测试这样的函数:你只需 use 插件并与它一起 require 文件

use Kahlan\Plugin\Isolator;

Isolator::isolate(dirname(__DIR__).'/../controller.php');

describe('to_test()', function() {
    it('returns 42', function() {
        expect(to_test())->toBe(42);
    });
});

isolation 后控制器文件将只包含函数(和 use 语句)而没有其他代码

<?php
function to_test() 
{
    return 42;
}

因此现在它是可测试的。