Próbuję utworzyć mój pierwszy test phpunit i muszę znaleźć metodę na interfejsie IMailer
.Wywołanie PHPUnit do niezdefiniowanej metody `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);
Jednak wciąż otrzymuję
PHP Fatal error:
Call to undefined method Mock_Mailer_13fc0a04::method()
in ...Test.php on line 16
a var_dump($mailer);
wyników w
class Mock_IMailer_4c3e02a7#215 (1) {
private $__phpunit_invocationMocker =>
NULL
}
Praca z daje błąd dito - wydaje się, że wyśmiewali obiekt nie ma żadnego makiety funkcjonalność ...
Używam phpunit 3.7.28 i php 5.5.9, na pudełku ubuntu.
Jak to możliwe? Jak mogę to naprawić?
Dzięki za sprostowanie mojego 'getMockBuilder' inwokację. Jednak "niezdefiniowana metoda" pozostaje ... – xtofl
Powyższy kod działa ładnie bez błędów na phpunit 4.1.0.Czy próbowałeś dodać wywołanie funkcji expos do drugiej części ('$ mailer-> expect-> method-> willReturn')? Czy możesz udostępnić całą klasę testową, z której korzystasz? To może dać więcej wskazówek do problemu, przed którym stoisz ... – ejuhjav
Myślę, że to powinna być akceptowana odpowiedź. -> setMethods i -> returnValue rozwiązały mój bardzo podobny problem (wydaje mi się, że mam też stare phpunit) – Jimmmy