Как проверить вызов метода на одном объекте, результат которого передается другому объекту в PHPSpec?

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

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

Как проверить вызов метода на одном объекте, результат которого передается другому объекту в PHPSpec?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

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

от hoyt.jerde , 8 месяцев назад

@jazmyne 

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

  1. Создайте спецификацию класса, в котором будет выполняться вызов метода и передача результата. Например, MyClassSpec.
  2. В методе it_should_call_method_and_pass_result_to_another_object опишите oжидаемое поведение: вызов метода на одном объекте и передачу результата другому объекту.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
public function it_should_call_method_and_pass_result_to_another_object()
{
    $object1 = new MyClass();
    $object2 = new AnotherClass();
    
    $object1->shouldBeCalled()->method(); // Метод объекта 1 должен быть вызван
    $object2->methodFromAnotherObject()->shouldBeCalled()->with($expectedResult); // Метод объекта 2 должен быть вызван с ожидаемым результатом
    
    $this->callMethodAndPassResult($object1, $object2);
}


  1. В методе callMethodAndPassResult выполните вызов метода на объекте 1 и передачу результата на объект 2.
1
2
3
4
5
public function callMethodAndPassResult(MyClass $object1, AnotherClass $object2)
{
    $result = $object1->method(); // Вызов метода на объекте 1 и сохранение результата
    $object2->methodFromAnotherObject($result); // Передача результата методу объекта 2
}


  1. Запустите тесты и убедитесь, что вызов метода на объекте 1 происходит и результат успешно передается объекту 2.

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

от krista , 8 месяцев назад

@jazmyne