Я пытаюсь создать свой первый тест phpunit и найти необходимость заглушить метод на интерфейсе IMailer
.PHPUnit вызов неопределенного метода `Mock_x _ :: method()`
interface IMailer
{
public function send($to, $from, $cc, $subject, $body);
public function sent();
}
$mailer = $this->getMockBuilder(
'IMailer',
array('send', 'sent'))->getMock();
$mailer->method('send')->willRreturn(0);
Однако я получаю
PHP Fatal error:
Call to undefined method Mock_Mailer_13fc0a04::method()
in ...Test.php on line 16
а var_dump($mailer);
результаты в
class Mock_IMailer_4c3e02a7#215 (1) {
private $__phpunit_invocationMocker =>
NULL
}
Работа с дает ошибку Дито - кажется, что издевались объект не имеет каких-либо издеваться функциональность ...
Я запускаю phpunit 3.7.28 и php 5.5.9, на ящике ubuntu.
Почему? Как я могу это исправить?
Спасибо за исправление моей 'getMockBuilder' розарий. Однако «неопределенный метод» остается ... – xtofl
Приведенный выше код работает без ошибок на phpunit 4.1.0.Вы пытались добавить вызов функции ожиданий ко второй части ('$ mailer-> expects-> method-> willReturn')? Не могли бы вы поделиться всем тестовым классом, который вы используете? Это может дать еще несколько подсказок к проблеме, с которой вы сталкиваетесь ... – ejuhjav
Я думаю, что это должен быть принят ответ. -> setMethods и -> returnValue решил мою очень похожую проблему (тоже кажется, у меня есть старый phpunit) – Jimmmy