Использование Mockery "с" ожиданием для проверки равенства объектов

Я использую Mockery для определения ожидания, что функция в моем макете должна вызываться с объектом в качестве аргумента. Я объявляю ожидаемый объект в моем тесте. Проблема в том, что объект в тесте не тот же объект по ссылке, как объект в моем коде - есть ли способ утверждать равенство двух объектов, а не точную ссылку?

Тестовый фрагмент

$resource = new Resource("Test");

$this->aThing
   ->shouldReceive('call')
   ->with($resource)
   ->andReturn(true)
   ->once();

Фрагмент кода

public function respondWithString()
{
    // assume $this->aThing is the injected mock

    $resource = new Resource("Test");
    $response = $this->aThing->call($resource);
    return $response;
}

1 ответ

Решение

Это должно работать:

$resource = new Resource("Test");

$this->aThing
   ->shouldReceive('call')
   ->with(Mockery::mustBe($resource))
   ->andReturn(true)
   ->once();
Другие вопросы по тегам