Testbench

20
Testbench Is it that simple? Martin Zlámal @mrtnzlml

Transcript of Testbench

TestbenchIs it that simple?

Martin Zlámal@mrtnzlml

píšu zlml.cz„ je fajn“

– Klára Š.

tady makám

composer requiremrtnzlml/testbench{ "require": { "mrtnzlml/testbench": "^2.1" }}

Testbench

DOPLŇUJENette\Tester

5.45.55.67.0PHP

1 bootstrap.php (readme.md)

2 tests.neon (jen pokud DB)

testbench: sqls: - %appDir%/../sqls/1.sql - %appDir%/../sqls/2.sql

vendor/bin/run-testsvendor/bin/tester -s -p php -c tests/php-unix.ini tests/

Nette Tester integration into PhpStormby Jiří Pudil

use \Testbench\TCompiledContainer;use \Testbench\TComponent;use \Testbench\TDoctrine;use \Testbench\TNetteDatabase;use \Testbench\TPresenter;

Testbench\TPresenterpublic function testRenderDefault(){ $this->checkAction('Homepage:');}

logIn($id=1, $roles=NULL, $data=NULL)checkSignal('Contact:', 'handler')check[Ajax]Form('Contact:', 'form', [ 'input' => 'value',]);checkRedirect('Dest:', '/v1/action')checkJson('Json:default')checkRss('Presenter:rss')checkSitemap('Sitemap:')

Testbench\TComponentpublic function testComponentRender(){ $this->checkRenderOutput( new \Component, '<strong>OK%A%' //string or file );}

Testbench\TDoctrinepublic function testDatabase(){ $em = $this->getEntityManager();

//Tester\Assert::...}

Testbench\TNetteDatabasepublic function testDatabase(){ $em = $this->getContext();

//Tester\Assert::...}

Testbench\TCompiledContainerpublic function testWhatever(){ /** @var \Nette\DI\Container $sl */ $sl = $this->getContainer(); //use it, or: $this->getService('...')}

Pomalé testy - RUNLEVELpublic function testExpensive(){ $level = \Testbench::SLOW; //(int)10 $this->changeRunLevel($level);}

$ RUNLEVEL=10 vendor/bin/run-tests ...

Just try it

Díky, to je vše.ZLML.CZ (ten co je fajn)

@mrtnzlml