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

Testbench

Apr 14, 2017

Download

Software

Martin Zlámal
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Testbench

TestbenchIs it that simple?

Martin Zlámal@mrtnzlml

Page 2: Testbench

píšu zlml.cz„ je fajn“

– Klára Š.

Page 3: Testbench

tady makám

Page 4: Testbench

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

Page 5: Testbench

Testbench

DOPLŇUJENette\Tester

Page 6: Testbench

5.45.55.67.0PHP

Page 7: Testbench

1 bootstrap.php (readme.md)

2 tests.neon (jen pokud DB)

Page 8: Testbench

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

Page 9: Testbench

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

Page 10: Testbench

Nette Tester integration into PhpStormby Jiří Pudil

Page 11: Testbench

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

Page 12: Testbench

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

Page 13: Testbench

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:')

Page 14: Testbench

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

Page 15: Testbench

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

//Tester\Assert::...}

Page 16: Testbench

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

//Tester\Assert::...}

Page 17: Testbench

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

Page 18: Testbench

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

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

Page 19: Testbench

Just try it

Page 20: Testbench

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

@mrtnzlml