0
UNIT TESTINGwith PHPUnit
about me        @ferca_tw             ferran caellas puig             Core Developer at eyeOSComputer geek and Open Source...
What isUNIT TESTING
class CoreTest extends PHPUnit_framework_TestCase {    public function TestCount() {       $testArray = array(‘value1’,’va...
What you want is to write tests that faileven though you think they should work,or tests that succeed even though youthink...
Writing testsDuring development
TDDTEST-DRIVEN DEVELOPMENT
Writing testsDuring debugging
STEPS1. Verify that you can reproduce the bug.2. Find the smallest-scale demonstration of thebug in the code.3. Write an a...
CODE COVERAGE   The beauty of testing is found not in                the effort but in the effiency.                Knowin...
public function testEmpty()           {             $stack = array();@depends     $this->assertEmpty($stack);             ...
/**                 * @dataProvider provider                 */@dataProvider   public function testAdd($a, $b, $c)        ...
@expectedException                     /**                      * @expectedException InvalidArgumentException             ...
expectOutputString                     public function testExpectFooActualFoo()                       {                   ...
assertArrayHasKey()	               assertObjectHasA/ribute()	               assertClassHasA/ribute()	          assertRegEx...
setUp()                        setUpBeforeClass()           tearDown()                     tearDownAfterClass()           ...
markTestIncomplete()Incomplete & Skipped   markTestSkipped()                       $this->markTestIncomplete(             ...
UNIT TESTINGwith PHPUnit
Unit testing with PHPUnit
Unit testing with PHPUnit
Upcoming SlideShare
Loading in...5
×

Unit testing with PHPUnit

2,233

Published on

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,233
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
46
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  •  phpunit --coverage-html ./result TwitterTest.php
  • Transcript of "Unit testing with PHPUnit"

    1. 1. UNIT TESTINGwith PHPUnit
    2. 2. about me @ferca_tw ferran caellas puig Core Developer at eyeOSComputer geek and Open Source enthusiast
    3. 3. What isUNIT TESTING
    4. 4. class CoreTest extends PHPUnit_framework_TestCase { public function TestCount() { $testArray = array(‘value1’,’value2’,’value3’); $countResult = count($testArray); $this->assertEquals(3, $countResult); }}
    5. 5. What you want is to write tests that faileven though you think they should work,or tests that succeed even though youthink they should fail.You want to write tests that will pay youback with information. Erich Gamma
    6. 6. Writing testsDuring development
    7. 7. TDDTEST-DRIVEN DEVELOPMENT
    8. 8. Writing testsDuring debugging
    9. 9. STEPS1. Verify that you can reproduce the bug.2. Find the smallest-scale demonstration of thebug in the code.3. Write an automated test that fails now butwill succeed when the bug is fixed.4. Fix the bug.
    10. 10. CODE COVERAGE The beauty of testing is found not in the effort but in the effiency. Knowing what should be tested is beautiful, and knowing what is being tested is beautiful. Murali Nandigama
    11. 11. public function testEmpty() { $stack = array();@depends $this->assertEmpty($stack); return $stack; } /** * @depends testEmpty */ public function testPush(array $stack) { array_push($stack, foo); $this->assertEquals(foo, $stack[count($stack)-1]); $this->assertNotEmpty($stack); return $stack; }
    12. 12. /** * @dataProvider provider */@dataProvider public function testAdd($a, $b, $c) { $this->assertEquals($c, $a + $b); } public function provider() { return array( array(0, 0, 0), array(0, 1, 1), array(1, 0, 1), array(1, 1, 3) ); }
    13. 13. @expectedException /** * @expectedException InvalidArgumentException * @expectedExceptionMessage Right Message */ public function testExceptionHasRightMessage() { throw new InvalidArgumentException(Some Message, 10); } /** * @expectedException InvalidArgumentException * @expectedExceptionCode 20 */ public function testExceptionHasRightCode() { throw new InvalidArgumentException(Some Message, 10); }
    14. 14. expectOutputString public function testExpectFooActualFoo() { $this->expectOutputString(foo); print foo; }
    15. 15. assertArrayHasKey()   assertObjectHasA/ribute()   assertClassHasA/ribute()   assertRegExp()   assertClassHasSta4cA/ribute()   assertStringMatchesFormat()   assertContains()   assertStringMatchesFormatFile()  Assertions assertContainsOnly()   assertSame()   assertCount()   assertSelectCount()   assertEmpty()   assertSelectEquals()   assertEqualXMLStructure()   assertSelectRegExp()   assertEquals()   assertStringEndsWith()   assertFalse()   assertStringEqualsFile()   assertFileEquals()   assertStringStartsWith()   assertFileExists()   assertTag()   assertGreaterThan()   assertThat()   assertGreaterThanOrEqual()   assertTrue()   assertInstanceOf()   assertXmlFileEqualsXmlFile()   assertInternalType()   assertXmlStringEqualsXmlFile()   assertLessThan()   assertXmlStringEqualsXmlString()   assertLessThanOrEqual()   assertNull()  
    16. 16. setUp() setUpBeforeClass() tearDown() tearDownAfterClass() protected function setUp()Fixtures { $this->stack = array(); } public function testEmpty() { $this->assertTrue(empty($this->stack)); } public function testPush() { array_push($this->stack, foo); $this->assertEquals(foo, $this->stack[count($this->stack)-1]); $this->assertFalse(empty($this->stack)); }
    17. 17. markTestIncomplete()Incomplete & Skipped markTestSkipped() $this->markTestIncomplete( This test has not been implemented yet. ); phpunit  -­‐-­‐verbose  SampleTest   PHPUnit  3.6.0  by  Sebas4an  Bergmann.   I   Time:  0  seconds,  Memory:  3.75Mb     There  was  1  incomplete  test:     1)  SampleTest::testSomething   This  test  has  not  been  implemented  yet.     /home/sb/SampleTest.php:12   OK,  but  incomplete  or  skipped  tests!   Tests:  1,  Asser4ons:  1,  Incomplete:  1.  
    18. 18. UNIT TESTINGwith PHPUnit
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×