+ All Categories
Home > Internet > PHPUnit

PHPUnit

Date post: 07-Aug-2015
Category:
Upload: rinat-khabibiev
View: 61 times
Download: 3 times
Share this document with a friend
Popular Tags:
25
PHPUnit Rinat Khabibiev
Transcript
Page 1: PHPUnit

PHPUnitRinat Khabibiev

Page 2: PHPUnit

* www.ExigenServices.com

PHPUNIT: BEGINNING

Even good programmers make mistakes

Page 3: PHPUnit

* www.ExigenServices.com

PHPUNIT

• Beginning

• Installation

• Test Driven Development

• Parameterized Unit Testing

• Testing Exceptions

• Dependencies

• Fixtures

• Patterns and Antipatterns

Contents

Page 4: PHPUnit

* 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

Page 5: PHPUnit

* www.ExigenServices.com

PHPUNIT: BEGINNING

Very simple example

Page 6: PHPUnit

* www.ExigenServices.com

PHPUNIT: BEGINNING

Very simple example

Page 7: PHPUnit

* 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

Page 8: PHPUnit

* 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

Page 9: PHPUnit

* www.ExigenServices.com

PHPUNIT: TEST DRIVEN DEVELOPMENT

~/models/Weekday.php

Page 10: PHPUnit

* www.ExigenServices.com

PHPUNIT: TEST DRIVEN DEVELOPMENT

~/tests/models/WeekdayTest.php

Page 11: PHPUnit

* 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)

Page 12: PHPUnit

* www.ExigenServices.com

PHPUNIT: TEST DRIVEN DEVELOPMENT

Tests execution results. - successF - assertion failsE - error occursS - test skippedI - test incomplete or not implemented

Page 13: PHPUnit

* www.ExigenServices.com

PHPUNIT: TEST DRIVEN DEVELOPMENT

~/tests/models/WeekdayTest.php

Page 14: PHPUnit

* www.ExigenServices.com

PHPUNIT: TEST DRIVEN DEVELOPMENT

~/tests/models/WeekdayTest.php

Page 15: PHPUnit

* www.ExigenServices.com

PHPUNIT: TEST DRIVEN DEVELOPMENT

~/models/Weekday.php

Page 16: PHPUnit

* www.ExigenServices.com

PHPUNIT: PARAMETERIZED UNIT TESTING

~/tests/models/WeekdayTest.php

Page 17: PHPUnit

* www.ExigenServices.com

PHPUNIT: TESTING EXCEPTIONS

~/models/Weekday.php

Page 18: PHPUnit

* www.ExigenServices.com

PHPUNIT: TESTING EXCEPTIONS

~/tests/models/WeekdayTest.php

Page 19: PHPUnit

* www.ExigenServices.com

PHPUNIT: DEPENDENCIES

~/tests/models/WeekdayTest.php

Page 20: PHPUnit

* www.ExigenServices.com

PHPUNIT: FIXTURES

~/tests/models/WeekdayTest.php

Page 21: PHPUnit

* 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

Page 22: PHPUnit

* www.ExigenServices.com

PHPUNIT: PATTERNS AND ANTIPATTERNS

Unit tests are for testing source code units

Page 23: PHPUnit

* 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

Page 24: PHPUnit

* www.ExigenServices.com

PHPUNIT: PATTERNS AND ANTIPATTERNS

Somewhere in our application

Page 25: PHPUnit

* www.ExigenServices.com

PHPUNIT

The End


Recommended