Я пытаюсь объявить математическое ожидание с двумя возможными значениями в качестве параметра. основанный на значении, я хочу, чтобы возвращаемое значение отличалось.Издевательство, чтобы определить несколько возможных значений в ожидании
вот что я пытался
$mock = m::mock('FooBar\ClassA');
$mock->shouldReceive('has')->with('foo')->andReturn(false);
$mock->shouldReceive('has')->with('bar')->andReturn(true);
я получаю эту ошибку
Издевательство \ Exception \ NoMatchingExpectationException: Нет сопоставления обработчика найдено для Mockery_2__FooBar_ClassA :: есть ("бар")
i читать http://docs.mockery.io/en/latest/reference/expectations.html
но я не могу найти ответ. Я пытаюсь решить проблему с andReturnUsing
, которая прямолинейна. Есть ли способ решить эту проблему без использования andReturnUsing
$mock->shouldReceive('has')->andReturnUsing(function ($value) {
switch ($value) {
case 'foo': return false;
case 'bar': return true;
}
});
кого-то есть какие-то идеи?
я также прочитал Mockery specifying expected arguments for multiple calls
но то же самое я пытался, это заставляет проверку на тип параметра.