Spuštění demo Nette aplikace nad testy
- Sitole
- Člen | 39
Dobrý den,
už se tu s tím pár dní patlám. Jak jednoduše spustím Nette aplikaci nad
Nette Testerem. Potřebuji otestovat několik našich tříd, které mají jako
parametry uživatele, presenter a podobně. Zkoušel jsem klasicky zkopírovat
celý spouštěcí soubor a mírně ho upravit a vkládal jsem ho přímo do
souborů *.phpt, které jsem testoval, ale vždy mi to vyhodilo neznámou chybu.
Co jsem zjistil, problém byl s generováním kontejneru. Máte na tohle už
osvědčený postup? Všechny tutoriály ukazují jen jednoduché testování
sčítání, ale převzetí Nette User nebo jakéhokoliv objektu, které si
tvoří Nette jsem nikde nenašel.
- Jan Endel
- Člen | 1016
Sám mám něco takovéhoto:
<?php
declare(strict_types=1);
use Tester\TestCase;
abstract class IntegrationTestCase extends TestCase
{
/**
* @var Container
*/
private $container;
protected function getContainer(): Container
{
if ($this->container === null) {
$this->container = $this->createContainer();
}
return $this->container;
}
private function createContainer(): Container
{
// share compiled container between tests
$config->setTempDirectory(__DIR__ . '/../temp');
$config->addConfig(__DIR__ . '/../config/config.test.neon');
$filePath = '/app/config/config.local.neon';
if (file_exists($filePath)) {
$config->addConfig($filePath);
}
$container = $config->createContainer();
return $this->container = $container;
}
}
pak jenom extenduju tenhle test case a uvnitř si zavolám $this->getContainer();