$ composer require phpunit/phpunit
Cấu trúc thư mục dự án PHPUnit đơn giản:
|- app |- tests |- vendor |- composer.json |- phpunit.xml
Trong đó:
Nội dung file phpunit.xml:
<?xml version="1.0" encoding="UTF-8"?> <phpunit colors="true"> <testsuites> <testsuite name="Application Test Suite"> <directory suffix="Test.php">./tests</directory> </testsuite> </testsuites> <php> <includePath>.</includePath> <env name="NOTIFIER_FIREBASE_KEY" value=""/> <env name="NOTIFIER_FIREBASE_TO_DEVICE" value=""/> <env name="NOTIFIER_FIREBASE_TO_TOPIC" value=""/> </php> </phpunit>
Trong đó:
Các file test cần được ánh xạ 1-1 với codebase và tên file được thêm chữ Test. Ví dụ:
./app/Foo.php ./app/Bar.php ./app/Controller/Baz.php
Cấu trúc thư mục Test sẽ như sau:
./test/FooTest.php ./test/BarTest.php ./test/Controller/BazTest.php
File ứng dụng:
<?php class Calculator { public function add($a, $b) { return $a + $b; } }
File test:
<?php require 'Calculator.php'; class CalculatorTests extends PHPUnit_Framework_TestCase { private $calculator; protected function setUp() { $this->calculator = new Calculator(); } protected function tearDown() { $this->calculator = NULL; } public function testTrueIsTrue() { $foo = true; $this->assertTrue($foo); } public function testAdd() { $result = $this->calculator->add(1, 2); $this->assertEquals(3, $result); } }
Gọi PHPUnit test:
$ vendor/bin/phpunit $ vendor/bin/phpunit tests/FirebaseTest.php $ vendor/bin/phpunit --filter testSendToTopic tests/FirebaseTest.php