Nette Tester / Posobota
Upcoming SlideShare
Loading in...5
×
 

Nette Tester / Posobota

on

  • 2,969 views

 

Statistics

Views

Total Views
2,969
Views on SlideShare
2,877
Embed Views
92

Actions

Likes
4
Downloads
10
Comments
0

2 Embeds 92

https://twitter.com 52
http://blog.twista.cz 40

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike LicenseCC Attribution-NonCommercial-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Nette Tester / Posobota Nette Tester / Posobota Presentation Transcript

    • Nette/TesterFilip Procházka @HosipLan
    • Proč PHPUnit ne?
    • Kdyby/FrameworkDoctrineEventsConsoleRedisFacebookReplicator
    • Příliš mnoho abstrakce
    • Špatně se rozšiřuje
    • Statika
    • Proč Nette/Tester?
    • Každý test je php script- snadné debuggování- otestujete neotestovatelné- fatal errory- http hlavičky- sušenky
    • Vždy paralelní- každý test ve vlastním vlákně- maximální izolace testů- lze spouštet XY testů zároveň- je možné je zámkem serializovat
    • Minimalistické api- Připomíná PHPUnit- TestCase::testExpectation()- @dataProvider- TestCase ale není povinný- Assert::true($result)
    • Napsal ho Davídek ;)
    • Jak začít?
    • Instalacecomposer.json"require-dev": {"nette/tester": "@dev"}$ composer update --dev
    • První testtests/Kdyby/example.phpt<?php// Hello World!if (2*2 !== 4) exit(1);
    • Zkusíme spustit$ php ./vendor/nette/tester/Tester/tester.php-j30 ./tests/
    • tests/bootstrap.php<?phpinclude __DIR__ . /../vendor/autoload.php;TesterHelpers::setup();class_alias(TesterAssert, Assert);date_default_timezone_set(Europe/Prague);define(TEMP_DIR,__DIR__ . /tmp/ . getmypid());TesterHelpers::purge(TEMP_DIR);
    • github.com/nette/sandboxgithub.com/nette/netteVíce na:
    • Asserty<?phprequire __DIR__ . /../bootstrap.php;Assert::true(2*2 === 4);Assert::same("a", "a");Assert::null(NULL);
    • Asserty<?phpAssert::throws(function () {throw new Exception("Hello");}, Exception, "Hello");
    • Asserty<?phpAssert::match("%a% %d%.%d%","Nette 2.0");
    • Metadata<?php/*** Test: NetteDiagnosticsDebugger* eval error in HTML.** @author David Grudl* @package NetteDiagnostics* @assertCode 500*/
    • TestCase<?phpclass ComputationTestextends TesterTestCase {public function testMath() {Assert::true(2*2 === 4);}}(new ComputationTest())->run();
    • TestCase<?phpclass ComputationTestextends TesterTestCase {protected function setUp(){}protected function tearDown(){}
    • TestCase<?phpclass ComputationTestextends TesterTestCase {function dataString(){return [["a", "a"], ["b", "b"]];}/** @dataProvider dataString */function testString($a, $b) {}
    • DomQuery<?php$dom = TesterDomQuery::fromHtml($html);Assert::true($dom->has(input[name="username"]));Assert::true($dom->has(input[name="password"]));
    • Code Coverage<?php // tests/bootstrap.phpif (extension_loaded(xdebug)) {xdebug_disable();TesterCodeCoverageCollector::start(__DIR__ . /coverage.dat);}
    • Code Coverage$ php ./vendor/nette/tester/Tester/coverage-report.php-c tests/Kdyby/coverage.dat-s ./src/Kdyby/Redis/-t "Kdyby/Redis"
    • Spouštění z IDE- testy jsou obyčejné php scripty- right click and run- right click and debug- test runner je obyčejný script- right click and run
    • Nevýhody...- integrace do nástrojů?- někdy málo info ve zprávách assertů- "array(2) is not equal to array(2)"- nemá výchozí mockovací nástroj- github.com/janmarek/mockista- chybí podpora Selenia- proužek s výsledkem nemění barvu :(
    • Dotazy?