PHPUnit test a chyba mockování
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- tttpapi
- Člen | 100
Ahoj,
hrozně rád bych začal testovat. Už se o to pokouším docela dlouho a pořád neúspěšně (pokud nebudu počítat testy typu 1+1 = 2).
Mám napsaný test:
<?php
class TestMailSenderTest extends PHPUnit_Framework_TestCase {
public function testSend() {
$mailSender = new \App\Model\Mails\TestMailSender();
$template = $this->getMock('NetteMailTemplate');
$value = new \App\Model\Mails\NetteMailTemplate();
$template->expects($this->once())
->method('getMailTemplateObject')
->with($this->isInstanceOf('NetteMailTemplate'))
->will($this->returnValue($value));
$res = $mailSender->send($template);
$this->assertTrue($res);
}
}
?>
Pokud ho spustím, tak dostanu chybu:
E_RECOVERABLE_ERROR: Argument 1 passed to
App\Model\Mails\TestMailSender::send()
must implement interface App\Model\Mails\IMailTemplate, instance of
Mock_NetteM
ailTemplate_775d6c7c given
Tuto chybu dostanu pokaždé, když si pokusím cokoliv mockovat.
Pouštím to příkazem: phpunit –bootstrap bootstrap.php TestMailSenderTest.php (bez toho –bootstrap mi to nenajde ty třídy)
Děkuji za jakoukoli radu.