Использование 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();