• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Unit testing with PHPUnit
 

Unit testing with PHPUnit

on

  • 1,601 views

 

Statistics

Views

Total Views
1,601
Views on SlideShare
1,240
Embed Views
361

Actions

Likes
1
Downloads
44
Comments
0

4 Embeds 361

http://fercaiscoding.com 348
http://ks202063.kimsufi.com 10
http://91.121.136.24 2
http://www.365dailyjournal.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

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
  •  phpunit --coverage-html ./result TwitterTest.php

Unit testing with PHPUnit Unit testing with PHPUnit Presentation Transcript

  • UNIT TESTINGwith PHPUnit
  • about me @ferca_tw ferran caellas puig Core Developer at eyeOSComputer geek and Open Source enthusiast
  • What isUNIT TESTING
  • class CoreTest extends PHPUnit_framework_TestCase { public function TestCount() { $testArray = array(‘value1’,’value2’,’value3’); $countResult = count($testArray); $this->assertEquals(3, $countResult); }}
  • 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
  • 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 automated test that fails now butwill succeed when the bug is fixed.4. Fix the bug.
  • 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
  • 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; }
  • /** * @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) ); }
  • @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); }
  • expectOutputString public function testExpectFooActualFoo() { $this->expectOutputString(foo); print foo; }
  • 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()  
  • 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)); }
  • 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.  
  • UNIT TESTINGwith PHPUnit