cjwind/codeception-yii2-event-tester

用于测试yii2事件的Codeception模块。

v0.1.2 2019-04-15 14:19 UTC

README

Build Status

Codeception模块,用于测试是否触发了yii2事件。

安装

$ composer require cjwind/codeception-yii2-event-tester

用法

配置

在套件配置中启用模块。例如,在unit.suite.yml中启用模块

class_name: UnitTester
modules:
    enabled:
      - Asserts
      - Yii2:
            part: [orm, email, fixtures]
      - cjwind\Yii2EventTester\Yii2EventTester

在测试中使用

namespace tests\unit\models;

use app\models\EventTestedClass;

class EventTestedClassTest extends \Codeception\Test\Unit {
    /**
     * @var \UnitTester
     */
    protected $tester;

    public function testEventTrigger() {
        $obj = new EventTestedClass;
        $this->tester->assertEventTriggered($obj, EventTestedClass::EVENT_FOO, function() use ($obj) {
            $obj->bar();    // Function should trigger event
        });

        $this->tester->assertEventTriggered(EventTestedClass::class, EventTestedClass::EVENT_BAR, function() {
            // Do sth. should trigger EventTestedClass::EVENT_BAR
        });
    }
}

类级事件

因为对象的 trigger() 也会调用类级处理器,当事件被对象触发时,类级事件的触发断言将通过。

许可证

MIT