Date post: | 07-Aug-2015 |
Category: |
Internet |
Upload: | rinat-khabibiev |
View: | 61 times |
Download: | 3 times |
PHPUnitRinat Khabibiev
* www.ExigenServices.com
PHPUNIT: BEGINNING
Even good programmers make mistakes
* www.ExigenServices.com
PHPUNIT
• Beginning
• Installation
• Test Driven Development
• Parameterized Unit Testing
• Testing Exceptions
• Dependencies
• Fixtures
• Patterns and Antipatterns
Contents
* www.ExigenServices.com
PHPUNIT: BEGINNING
• easy to learn to write
• easy to write
• easy to read
• easy to execute
• quick to execute
• isolated
• composable
What should be the tests
* www.ExigenServices.com
PHPUNIT: BEGINNING
Very simple example
* www.ExigenServices.com
PHPUNIT: BEGINNING
Very simple example
* www.ExigenServices.com
PHPUNIT: BEGINNING
• assertEquals($expr1, $expr2, $fail_msg)
• assertTrue($expr, $fail_msg)
• assertFalse($expr, $fail_msg)
• assertInstanceOf($expected, $expr, $fail_msg)
• assertNull($expr, $fail_msg)
• assertEmpty($expr, $fail_msg)
• assertThat($expr, $constraint, $fail_msg)
Assertions
* www.ExigenServices.com
PHPUNIT: INSTALLATION
Installation using PEAR
cd <PHP_dir>go-pearpear upgrade PEARpear config-set auto_discover 1pear install pear.phpunit.de/PHPUnit
• PHP 5.2.7 - minimum
• PHP 5.3.9 - recommended
* www.ExigenServices.com
PHPUNIT: TEST DRIVEN DEVELOPMENT
~/models/Weekday.php
* www.ExigenServices.com
PHPUNIT: TEST DRIVEN DEVELOPMENT
~/tests/models/WeekdayTest.php
* www.ExigenServices.com
PHPUNIT: TEST DRIVEN DEVELOPMENT
Tests execution
~# cd <tests_dir>/models~# phpunit WeekdayTestPHPUnit 3.6.0 by Sebastian Bergmann.
..
Time: 0 seconds, Memory: 5.25Mb
OK (2 test, 0 assertion)
* www.ExigenServices.com
PHPUNIT: TEST DRIVEN DEVELOPMENT
Tests execution results. - successF - assertion failsE - error occursS - test skippedI - test incomplete or not implemented
* www.ExigenServices.com
PHPUNIT: TEST DRIVEN DEVELOPMENT
~/tests/models/WeekdayTest.php
* www.ExigenServices.com
PHPUNIT: TEST DRIVEN DEVELOPMENT
~/tests/models/WeekdayTest.php
* www.ExigenServices.com
PHPUNIT: TEST DRIVEN DEVELOPMENT
~/models/Weekday.php
* www.ExigenServices.com
PHPUNIT: PARAMETERIZED UNIT TESTING
~/tests/models/WeekdayTest.php
* www.ExigenServices.com
PHPUNIT: TESTING EXCEPTIONS
~/models/Weekday.php
* www.ExigenServices.com
PHPUNIT: TESTING EXCEPTIONS
~/tests/models/WeekdayTest.php
* www.ExigenServices.com
PHPUNIT: DEPENDENCIES
~/tests/models/WeekdayTest.php
* www.ExigenServices.com
PHPUNIT: FIXTURES
~/tests/models/WeekdayTest.php
* www.ExigenServices.com
PHPUNIT: FIXTURES
• setUpBeforeClass (once before all tests)
• setUp (before each test)
• assertPreConditions (before each test)
• assertPostConditions (after each successful test)
• tearDown (after each test)
• onNotSuccessfulTest (after each failed test)
• tearDownAfterClass (once after all tests)
All methods available
* www.ExigenServices.com
PHPUNIT: PATTERNS AND ANTIPATTERNS
Unit tests are for testing source code units
* www.ExigenServices.com
PHPUNIT: PATTERNS AND ANTIPATTERNS
• assertEquals($expr1, $expr2, $fail_msg)
• assertTrue($expr, $fail_msg)
• assertFalse($expr, $fail_msg)
• assertInstanceOf($expected, $expr, $fail_msg)
• assertNull($expr, $fail_msg)
• assertEmpty($expr, $fail_msg)
• assertThat($expr, $constraint, $fail_msg)
Assertions
* www.ExigenServices.com
PHPUNIT: PATTERNS AND ANTIPATTERNS
Somewhere in our application
* www.ExigenServices.com
PHPUNIT
The End