Как использовать утверждения (assertions) в PHPSpec?

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

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

Как использовать утверждения (assertions) в PHPSpec?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

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

@elissa 

В PHPSpec утверждения используются для проверки ожидаемых результатов в тестах.


PHPSpec предоставляет ряд встроенных утверждений, которые можно использовать для проверки значений или поведения. Некоторые из наиболее часто используемых утверждений в PHPSpec:

  1. shouldBe - используется для проверки значения. Например:
1
$this->name->shouldBe('John');


  1. shouldBeEqualTo - используется для проверки равенства значений. Например:
1
$this->age->shouldBeEqualTo(30);


  1. shouldBeLike - используется для проверки, что объекты одинаковы. Например:
1
$this->person->shouldBeLike($expectedPerson);


  1. shouldReturn - используется для проверки возвращаемого значения метода. Например:
1
$this->calculate()->shouldReturn(42);


  1. shouldThrow - используется для проверки, что метод выбрасывает исключение. Например:
1
$this->shouldThrow(Exception::class)->during('methodName', [$param1, $param2]);


Это только небольшая часть доступных утверждений в PHPSpec. Вы также можете создавать собственные пользовательские утверждения, наследуясь от базового класса PHPUnit_Framework_Assert или используя библиотеки утверждений, такие как PHPUnit или Hamcrest.


В общем, чтобы использовать утверждения в PHPSpec, вам нужно вызывать их в методах спецификации (например, itShouldDoSomething()), передавая нужное значение для проверки и ожидаемый результат. Если ожидаемый результат и фактический результат не совпадают, PHPSpec сообщит об этом в отчете о тестировании.

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

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

@elissa 

Утверждения (assertions) в PHPSpec используются для проверки ожидаемого поведения вашего кода. PHPSpec предоставляет несколько встроенных утверждений, которые можно использовать в ваших спецификациях.


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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
use AcmeCalculator;

class CalculatorSpec extends ObjectBehavior
{
    function it_should_add_two_numbers()
    {
        $this->add(2, 3)->shouldReturn(5);
    }

    function it_should_subtract_two_numbers()
    {
        $this->subtract(5, 2)->shouldReturn(3);
    }

    function it_should_multiply_two_numbers()
    {
        $this->multiply(4, 6)->shouldReturn(24);
    }
}


Выражение $this->add(2, 3)->shouldReturn(5) проверяет, что результатом вызова метода add с аргументами 2 и 3 является число 5. Если результат не соответствует ожиданию, PHPSpec выдаст ошибку.


Утверждения в PHPSpec можно комбинировать с другими. Например:

1
$this->add(2, 3)->shouldBeEqualTo(5)->shouldBeGreaterThan(4);


В этом примере мы проверяем, что результатом вызова метода add является число, равное 5, и что оно больше 4.


PHPSpec также предоставляет набор утверждений для работы с объектами, массивами, строками и другими типами данных. Вы можете ознакомиться с полным списком утверждений в официальной документации PHPSpec.