Как обрабатывать исключения в PHPSpec?

Пользователь

от karen.wisozk , в категории: PHP , 10 месяцев назад

Как обрабатывать исключения в PHPSpec?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от nicola , 9 месяцев назад

@karen.wisozk 

В PHPSpec исключения могут быть обработаны с использованием метода shouldThrow().


Прежде всего, убедитесь, что у вас установлена и настроена библиотека phpspec/prophecy-phpunit.


Для обработки исключения в PHPSpec можно использовать следующий синтаксис:

  1. Импортируйте необходимые классы:
1
2
use MyNamespaceMyClass;
use PhpSpecObjectBehavior;


  1. Включите свойства-подмоки:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
class MyClassSpec extends ObjectBehavior
{
    private $someDependency;

    public function let(MyDependency $dependency)
    {
        $this->someDependency = $dependency;
        $this->beConstructedWith($dependency);
    }
}


  1. Определите метод, в котором будет вызываться исключение:
1
2
3
4
5
6
7
8
9
class MyClassSpec extends ObjectBehavior
{
    // ...

    public function it_throws_an_exception()
    {
        $this->someMethod()->shouldThrow(Exception::class)->during('someMethod');
    }
}


В приведенном примере someMethod() вызывает исключение Exception. shouldThrow() ожидает, что именно это исключение будет выброшено при вызове метода someMethod(). В противном случае, спецификация не будет выполнена успешно.