Tester: testování presenterů – několik otázek :-)
- potapnik
- Člen | 127
Tak jsem chtěl rozjet testování Nette Testerem na presentery, vycházel jsem z velestručného testování presenterů, ale asi dělám něco blbě :-)
1. Tady je můj HomepageTester.phpt (bootstrap.php pro Tester je výchozí
z distribuce nette/sandbox), který po spuštění testerem pod Windows v root
adresari: vendor\bin\tester.bat tests
skončí chybou Fatal error:
Class Templatexxxxxxxxxxxx not found in
root\vendor\latte\latte\src\Latte\Engine.php on line 95. Obsah chyby chápu :-)
ale jak to fixnout, netuším :-)
<?php
namespace Test;
use Nette;
use Tester;
use Tester\Assert;
use Tester\DomQuery;
$container = require __DIR__ . '/bootstrap.php';
class HomepageTest extends Tester\TestCase
{
private $container;
private $presenterFactory;
public function __construct($container) {
$this->container = $container;
$this->presenterFactory = $container->getByType('Nette\Application\IPresenterFactory');
}
public function testPresenter() {
$presenter = $this->presenterFactory->createPresenter('Homepage');
$presenter->autoCanonicalize = FALSE;
$request = new Nette\Application\Request('Homepage', 'GET');
$response = $presenter->run($request);
Assert::true($response instanceof Nette\Application\Responses\TextResponse);
$html = (string) $response->getSource();
$dom = DomQuery::fromHtml($html);
Assert::true($dom->has('h1'));
}
}
$test = new HomepageTest($container);
$test->run();
?>
2. pokud začne fungovat to z bodu 1 :-) je nějaká možnost, jak prolítnout všechny presentery a jejich akce? Viděl jsem gist Filipa Procházky, který vypadal velmi dobře (https://gist.github.com/…hazka/705975) jen nevím, jak moc aktuální je a jestli přihnout jej nebo vyrobit kolo znovu :-) Předem díky za jakoukoli pomoc, tuším, že to bude obecnější nepochopení jak k testování přistoupit :-)
- Filip Klimeš
- Nette Blogger | 156
- Pokud používáš Nette 2.3, je možné že jsi narazil na stejnou chybu jaká se řeší tady
Editoval Filip Klimeš (20. 2. 2015 15:28)