承接 zalas/phpunit-doubles 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

zalas/phpunit-doubles

最新稳定版本:v1.9.8

Composer 安装命令:

composer require zalas/phpunit-doubles

包简介

Initialises test doubles in PHPUnit test cases for you

README 文档

README

Build Scrutinizer Code Quality

Initialises test doubles in PHPUnit test cases for you.

Installation

Composer

composer require --dev zalas/phpunit-doubles

Phar

The extension is also distributed as a PHAR, which can be downloaded from the most recent Github Release.

Put the extension in your PHPUnit extensions directory. Remember to instruct PHPUnit to load extensions in your phpunit.xml:

<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd"
         extensionsDirectory="tools/phpunit.d"
>
</phpunit>

Usage

Include the Zalas\PHPUnit\Doubles\TestCase\ProphecyTestDoubles or Zalas\PHPUnit\Doubles\TestCase\PHPUnitTestDoubles trait to have your test doubles initialised in one of the supported test doubling frameworks.

Both the type of test double and the kind of test doubling framework are taken from the property type:

/**
 * @var Vimes|ObjectProphecy
 */
 private $vimes;

Currently, two test doubling frameworks are supported:

  • Prophecy - Prophecy\Prophecy\ObjectProphecy type hint
  • PHPUnit - PHPUnit\Framework\MockObject\MockObject type hint

Prophecy

<?php

use PHPUnit\Framework\TestCase;
use Prophecy\Prophecy\ObjectProphecy;
use Zalas\PHPUnit\Doubles\TestCase\ProphecyTestDoubles;

class DiscworldTest extends TestCase
{
    use ProphecyTestDoubles;

    /**
     * @var Vimes|ObjectProphecy
     */
    private $vimes;

    /**
     * @var Nobby|Fred|ObjectProphecy
     */
    private $nobbyAndFred;

    public function test_it_hires_new_recruits_for_nightwatch()
    {
        $discworld = new Discworld($this->vimes->reveal(), $this->nobbyAndFred->reveal());

        $discworld->createNightWatch();

        $this->vimes->recruit($this->nobbyAndFred)->shouldHaveBeenCalled();
    }
}

PHPUnit

<?php

use PHPUnit\Framework\MockObject\MockObject;
use PHPUnit\Framework\TestCase;
use Zalas\PHPUnit\Doubles\TestCase\PHPUnitTestDoubles;

class DiscworldTest extends TestCase
{
    use PHPUnitTestDoubles;

    /**
     * @var Vimes|MockObject
     */
    private $vimes;

    /**
     * @var Nobby|MockObject
     */
    private $nobbyAndFred;

    public function test_it_hires_new_recruits_for_nightwatch()
    {
        $discworld = new Discworld($this->vimes, $this->nobby);

        $this->vimes->expects($this->once())
            ->method('recruit')
            ->with($this->nobby);

        $discworld->createNightWatch();
    }
}

Contributing

Please read the Contributing guide to learn about contributing to this project. Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

统计信息

  • 总下载量: 13.07k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 16
  • 点击次数: 1
  • 依赖项目数: 2
  • 推荐数: 0

GitHub 信息

  • Stars: 16
  • Watchers: 2
  • Forks: 2
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2018-07-27