peridot-php/peridot-prophecy-plugin

将预言模拟注入到您的 Peridot 测试中

1.1.0 2014-11-25 17:54 UTC

This package is not auto-updated.

Last update: 2024-09-10 03:09:59 UTC


README

Build Status HHVM Status

使用 Peridot 与惊人的模拟框架 Prophecy

##使用方法

我们建议您通过 composer 将此插件安装到项目中

$ composer require --dev peridot-php/peridot-prophecy-plugin:~1.0

您可以通过您的 peridot.php 文件注册插件。

<?php
use Evenement\EventEmitterInterface;
use Peridot\Plugin\Prophecy\ProphecyPlugin;

return function(EventEmitterInterface $emitter) {
    $plugin = new ProphecyPlugin($emitter);
};

注册此插件将为所有测试添加一个 ProphecyScope 作为子作用域。这将在您的所有测试中允许您获取预言对象。

<?php
describe('Bird', function() {
    it('should fly', function() {
        $mock = $this->getProphet()->prophesize('Bird');
        //do stuff with the mock
    });
});

###自动注入模拟

如果测试套件的描述是现有类,预言插件将自动将一个模拟类的 $subject 实例变量注入到测试中。

describe('Vendor\Namespace\Klass', function() {
    it('should have a subject', function() {
        $instance = $this->subject->reveal();
        assert($instance instanceof Klass, 'should be instance of Klass');
    });
});

###按测试使用作用域

像任何其他 Peridot 作用域 一样,您可以在测试级别或套件级别混合使用此插件提供的 ProphecyScope

<?php
use Peridot\Plugin\Prophecy\ProphecyScope;

describe('Bird', function() {
    //here we manually mixin the http kernel scope
    $scope = new ProphecyScope();
    $this->peridotAddChildScope($scope);

    it('should fly', function() {
        $mock = $this->getProphet()->prophesize('Bird');
        //do stuff with the mock
    });
});

##示例规范

要测试使用该插件的示例,请运行以下命令

$ vendor/bin/peridot example/bird.spec.php

##运行插件测试

$ vendor/bin/peridot specs/