Sto provando a creare il mio primo test di phpunit e mi ritrovo a dover eseguire uno stub di un metodo su un'interfaccia IMailer
.PHP Chiamata a un metodo non definito `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);
Tuttavia, continuo a ricevere
PHP Fatal error:
Call to undefined method Mock_Mailer_13fc0a04::method()
in ...Test.php on line 16
un var_dump($mailer);
risultati in
class Mock_IMailer_4c3e02a7#215 (1) {
private $__phpunit_invocationMocker =>
NULL
}
Lavorare con la dà un errore di Dito - sembra che l'oggetto preso in giro non ha finto funzionalità ...
Sto eseguendo phpunit 3.7.28 e php 5.5.9, su una scatola di Ubuntu.
Come mai? Come posso ripararlo?
Grazie per correggere il mio 'getMockBuilder' invocazione. Tuttavia, il "metodo non definito" rimane ... – xtofl
Il codice sopra riportato funziona bene senza errori su phpunit 4.1.0.Hai provato ad aggiungere la chiamata di funzione prevista alla seconda parte ('$ mailer-> expect-> method-> willReturn')? Potresti condividere l'intera classe di test che stai utilizzando? Questo potrebbe dare qualche indizio in più sul problema che stai affrontando ... – ejuhjav
Penso che questo dovrebbe essere accettato risposta. -> setMethods e -> returnValue ha risolto il mio problema molto simile (sembra che anch'io abbia una vecchia phpunit) – Jimmmy