Фасад макет называется дважды, не перекрывая первым?

Я использую Laravel и насмехаюсь над объектом Facade, как

Confide::shouldReceive('user')->atLeast(1)->andReturn( (object) array('id' => 42) );
var_dump(Confide::user()->id); // returns int(42)
Confide::shouldReceive('user')->atLeast(1)->andReturn( (object) array('id' => 1) );
var_dump(Confide::user()->id); // returns int(42) but should be int(1)

тем не мение var_dump(Confide::user()->id); всегда возвращает 42. Хотя второй должен вернуться 1 как я это установил 1,

Что я делаю неправильно?

0

Решение

Confide::shouldReceive('user')->atLeast(1)->andReturn(
(object) array('id' => 42),
(object) array('id' => 1)
);

Так что это нужно будет запустить хотя бы один раз.

Первый вызов вернет объект с id = 42второе и последующее вернут объект с id = 1,

PS: я никогда не работал с издевательством, я просто проверил его документацию http://docs.mockery.io/en/latest/reference/expectations.html

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]