Как проверить возвращаемое значение метода в PHPSpec?

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

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

Как проверить возвращаемое значение метода в PHPSpec?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от kyleigh_runte , год назад

@nelle 

В PHPSpec, чтобы проверить возвращаемое значение метода, вы можете использовать метод willReturn() в методе shouldReturn().


Ниже приведен пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
use MyNamespaceMyClass;

class MyClassSpec extends ObjectBehavior
{
    function it_returns_something()
    {
        $this->beConstructedWith('Some Value');

        $result = $this->myMethod();

        $result->shouldReturn('Expected Value');
    }
}


В этом примере мы создаем экземпляр класса MyClass с конструктором, принимающим значение 'Some Value'. Затем мы вызываем метод myMethod() и присваиваем результат в переменную $result. Затем мы проверяем ожидаемое значение 'Expected Value' с помощью метода shouldReturn().


Вы также можете использовать другие методы PHPSpec для проверки возвращаемых значений, такие как shouldBe(), shouldBeLike(), shouldBeAnInstanceOf(), в зависимости от того, какую проверку вы хотите выполнить.

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

от amber_moore , год назад

@nelle 

Для проверки возвращаемого значения метода в PHPSpec вы можете использовать метод shouldReturn().


Вот пример:

1
2
3
4
public function it_should_return_true_if_value_is_greater_than_zero()
{
    $this->checkValue(5)->shouldReturn(true);
}


В этом примере checkValue() - это метод, который вы проверяете, и вы ожидаете, что он вернет true, если значение больше нуля.


Вы также можете использовать shouldBe() для проверки возвращаемого значения метода, если ожидаемое значение является объектом или массивом.

1
2
3
4
5
6
public function it_should_return_an_array_of_values()
{
    $this->getValues()->shouldBeArray();
    $this->getValues()->shouldContain('value1');
    $this->getValues()->shouldContain('value2');
}


В этом примере getValues() - это метод, который вы проверяете. Вы проверяете, что он возвращает массив значений, и он должен содержать value1 и value2.