У меня есть вопрос о насмешливый объект ...PHPUnit насмешливый вызов издевались метод в то же издевались над объектом
У меня есть класс «Пример», и мне нужно, чтобы проверить callMethod()
public function callMethod() {
$item = 0;
foreach($this->returnSomething() as $list) {
$item = $item + $list->sum;
}
return $item;
}
У меня есть тест метод, где я макет «returnSomething», чтобы вернуть мне некоторые данные, но проблема в том, что он не вызывает издевательский метод.
Это часть метода тестирования, где im mocking «returnSomething» и вызывает «callMethod».
$mock = mock("Example");
$mock->shouldReceive("returnSomething")->once()->withNoArgs()->andReturn($returnItems);
$result = $mock->callMethod();
Можно ли назвать высмеивали «returnSomething» без изменения определения «callMethod» и пересылки $ фиктивного объекта в этот метод?
Я считаю, что PHPUnit позволяет вам издеваться над всеми функциями, не устанавливая массив ('returnSomething'), но оставьте его пустым, чтобы все функции были издеваемы. Однако вы получите только одно возвращаемое значение. –
Я понял вопрос таким образом: как высмеять только определенный метод из класса и оставить методы отдыха, как они есть в оригинальном классе. Я вижу, что мое выражение «вы можете высмеивать только указанный метод» сбивает с толку, смысл в том, что я имел в виду: «Можно высмеять только указанный метод». Спасибо, спасибо – Cyprian
Нет проблем. Я думаю, что мы оба неправильно его читаем. –