phpunit и prophecy не могут ожидать исключения типа "ClassMirrorException" - PullRequest
0 голосов
/ 23 февраля 2020

Я пишу тест на возможность смоделировать последний класс с помощью 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 репозиторий , чтобы быстро перейти к проблеме в один клик:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...