Použití anotace @dataProvider s přístupy do DB za použití Tester\TestCase
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- fary
- Člen | 155
Mám soubor databases.ini, který v testu načítám pomocí anotace
@dataProvider databases.ini
. Když je tento test napsán bez
použití TestCase (tedy jednotlivé asserce jdou jedna za druhou), tak vše
funguje dobře, ale v souboru, kde mám testovací třídu a tato třída
dědí TestCase se mi v terminálu vyhazuje chyba:
Tester\TestCaseException: Method 'mysql' does not exist or it is not a testing method.
.
V onom načítaném souboru databases.ini
mám právě sekci
[mysql]
s přístupy do DB. Odtud asi pochází ta záhadná
metoda mysql
z chybové hlášky, ovšem žádnou takovou metodu
v testu (ve třídě) samozřejmě nemám. Nevíte, co by mohlo být špatně?
Níže uvádím ukázku kódu.
/**
* Test: MyModule\MyRepository
*
* @author John Doe
* @dataProvider? databases.ini
* @testCase
*/
namespace Test;
use Nette,
Tester,
Tester\Assert;
require __DIR__ . '/connect.inc.php'; // create $connection
class MyRepositoryTest extends Tester\TestCase
{
private $connection;
private $repository;
// TestRepository pochází se souboru connect.ini.php načítaného pomocí require výše
public function __construct(Nette\Database\Connection $connection, TestRepository $repository)
{
$this->connection = $connection;
$this->repository = $repository;
}
public function setUp()
{
Nette\Database\Helpers::loadFromFile($this->connection, __DIR__ . '/files/mysql-my_test1.sql');
}
public function testMethod1()
{
Assert::true(TRUE);
}
}
$testCase = new MyRepositoryTest($connection, new TestRepository('user', $context));
$testCase->run();
- Milo
- Nette Core | 1283
Je to bug (nedořešená feature). https://github.com/…r/issues/136. Díky za report.