phpspec/prophecy-phpunit

在PHPUnit测试用例中集成Prophecy模拟库

v2.2.0 2024-03-01 08:33 UTC

This package is auto-updated.

Last update: 2024-08-27 12:42:21 UTC


README

Build Status

Prophecy PhpUnit将Prophecy模拟库与PHPUnit集成,以提供更简单的测试用例模拟。

安装

先决条件

Prophecy PhpUnit需要PHP 7.3或更高版本。Prophecy PhpUnit需要PHPUnit 9.1或更高版本。较旧的PHPUnit版本已自行提供Prophecy集成。

通过Composer安装

composer require --dev phpspec/prophecy-phpunit

您可以在其官方网页上了解更多关于Composer的信息。

如何使用

特性 ProphecyTrait 提供了一个名为 prophesize($classOrInterface = null) 的方法来使用Prophecy。有关Prophecy双工的用法,请参阅Prophecy文档

以下是一个使用示例

<?php

namespace App;

use PHPUnit\Framework\TestCase;
use Prophecy\PhpUnit\ProphecyTrait;
use App\Security\Hasher;
use App\Entity\User;

class UserTest extends TestCase
{
    use ProphecyTrait;

    public function testPasswordHashing()
    {
        $hasher = $this->prophesize(Hasher::class);
        $user   = new User($hasher->reveal());

        $hasher->generateHash($user, 'qwerty')->willReturn('hashed_pass');

        $user->setPassword('qwerty');

        $this->assertEquals('hashed_pass', $user->getPassword());
    }
}