Как создать кастомное утверждение в PHPSpec?

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

от stephon , в категории: PHP , год назад

Как создать кастомное утверждение в PHPSpec?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от shayna.buckridge , год назад

@stephon 

Для создания кастомного утверждения в PHPSpec, вам нужно выполнить следующие шаги:

  1. Создайте новый класс внутри директории spec вашего проекта. Название класса должно быть соответствующим и описывать ваше утверждение, например CustomAssertion.
  2. Внутри созданного класса определите методы, которые будут выполнять необходимые проверки. Эти методы должны возвращать булево значение true или false в зависимости от результата проверки. К примеру, вы можете создать метод assertCustom($actual, $expected), который проверяет, соответствует ли $actual каким-либо заданным условиям и возвращает true или false.
  3. В вашем спецификации (spec файле) подключите созданный класс, используя оператор use, например: use CustomAssertion.
  4. Внутри вашего спецификации вызовите созданный метод assertCustom() и передайте ему необходимые параметры для проверки. Если метод возвращает true, то утверждение проходит успешно, иначе - не проходит.


Пример использования кастомного утверждения в PHPSpec:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
// CustomAssertion.php
class CustomAssertion
{
    public function assertCustom($actual, $expected)
    {
        // Ваша логика проверки
        // Возвращение true или false
    }
}

// CustomAssertionSpec.php
use CustomAssertion;

class CustomAssertionSpec extends ObjectBehavior
{
    function it_can_perform_custom_assertion()
    {
        $this->shouldThrow()->during('assertCustom', [$actual, $expected]);
    }
}


Обратите внимание, что в приведенном примере используется PHPSpec 2, где создается класс-спецификации, который наследуется от ObjectBehavior. В PHPSpec 3 этот синтаксис может отличаться.