Я использую 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
,
Что я делаю неправильно?
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
Других решений пока нет …