Я пишу тест на возможность смоделировать последний класс с помощью Prophecy в классе phpunit TestCase.
Проблема заключается в том, что phpunit не может ожидать появления данного исключения.
Для большей ясности следует коду модульного теста:
<?php
namespace pherserk\FinalClassMockingExamples\test;
use pherserk\FinalClassMockingExamples\AllowedSimpleFinalClass;
use pherserk\FinalClassMockingExamples\NotAllowedSimpleFinalClass;
use PHPUnit\Framework\TestCase;
use Prophecy\Exception\Doubler\ClassMirrorException;
/**
* Class FinalClassMockingExampleTest
* @package pherserk\FinalClassMockingExamples\test
*/
class FinalClassMockingExampleTest extends TestCase
{
public function testAllowedFinalClassCanBeMocked()
{
static::prophesize(AllowedSimpleFinalClass::class);
static::expectNotToPerformAssertions();
}
public function testNotAllowedFinalClassCannotBeMocked()
{
static::expectException(ClassMirrorException::class);
static::prophesize(NotAllowedSimpleFinalClass::class);
}
}
Учитывая, что попытка пророчествовать "NotAllowedSimpleFinalClass" исключает ожидание:
static::expectException(ClassMirrorException::class)
phpunit будет просто выдать ошибку о необработанном:
"Prophecy\Exception\Doubler\ClassMirrorException"
Что мне не хватает?
Я создал publi c репозиторий , чтобы быстро перейти к проблеме в один клик: