symplify/easy-coding-standard-tester

此包已被弃用,不再维护。作者建议使用 symplify/easy-coding-standard 包。

测试 Sniffs 和 Fixers 的最佳方式

v9.3.20 2021-06-05 15:50 UTC

This package is auto-updated.

Last update: 2021-06-06 16:09:35 UTC


README

Downloads total

您自己编写 fixer 和 sniffs 吗?您是否想在不深入了解其内部结构的情况下测试它们?

此包使 fixer 和 sniff 测试通过单一方法变得极其简单.

安装

composer require symplify/easy-coding-standard-tester --dev

使用

  1. 扩展 Symplify\EasyCodingStandardTester\Testing\AbstractCheckerTestCase

  2. doTestFiles() 方法提供文件

namespace Your\CodingStandard\Tests\Fixer\YourFixer;

use Iterator;
use Symplify\EasyCodingStandardTester\Testing\AbstractCheckerTestCase;
use Symplify\EasyTesting\DataProvider\StaticFixtureFinder;
use Symplify\SmartFileSystem\SmartFileInfo;
use Your\CondingStandard\Fixer\YourFixer;

final class YourFixerTest extends AbstractCheckerTestCase
{
    /**
     * @dataProvider provideData()
     */
    public function test(SmartFileInfo $fileInfo): void
    {
        $this->doTestFileInfo($fileInfo);
    }

    public function provideData(): Iterator
    {
        return StaticFixtureFinder::yieldDirectory(__DIR__ . '/Fixture');
    }

    /**
     * @dataProvider provideDataWithFileErrors()
     */
    public function testFileErrors(SmartFileInfo $fileInfo, int $expectedErrorCount): void
    {
        $this->doTestFileInfoWithErrorCountOf($fileInfo, $expectedErrorCount);
    }

    public function provideDataWithFileErrors(): Iterator
    {
        yield [new SmartFileInfo(__DIR__ . '/Fixture/wrong.php.inc'), 1];
        yield [new SmartFileInfo(__DIR__ . '/Fixture/correct.php.inc'), 0];
    }

    protected function getCheckerClass(): string
    {
        return YourFixer::class;
    }
}

而不是 [__DIR__ . '/wrong/wrong.php.inc', __DIR__ . '/fixed/fixed.php.inc'],您可以使用单个文件:__DIR__ . '/fixture/fixture.php.inc',格式如下

<?php

$array = array();

?>
-----
<?php

$array = [];

?>

伪代码

before
------
after

报告问题

如果您遇到错误或想请求新功能,请访问 Symplify monorepo 问题跟踪器

贡献

此包的源代码包含在 Symplify monorepo 中。我们欢迎在 symplify/symplify 上为此包做出贡献。