====== Thiết lập hệ thống auto test ======
**Bước 1.** Clone kho code về.
**Bước 2.** Dùng composer cài đặt PHPUnit ''composer require %%--%%dev phpunit/phpunit ^7''
**Bước 3.** Copy file ''vendor\bin\phpunit.bat'' thành ''phpunit.bat'' (Chạy trên window). Mở phpunit.bat sửa
/../phpunit/phpunit/phpunit
Thành
/vendor/phpunit/phpunit/phpunit
Mở CMD lên kiểm tra PHPUnit đã cài đặt thành công chưa bằng lệnh ''phpunit --version''. Nếu kết quả là
PHPUnit 7.0.0 by Sebastian Bergmann and contributors.
Tức đã thành công.
**Bước 4.** Copy file ''tests-config-sample.php'' thành ''tests-config.php''. Tạo một CSDL để test sau đó mở file ''tests-config.php'' chỉnh sửa thông số
define('NV_DB_TESTS_DBNAME', 'nv4_test');
define('NV_DB_TESTS_DBUNAME', 'root');
define('NV_DB_TESTS_DBPASS', '');
Và các thông số khác nếu cần thiết.
**Bước 5.** Thực hiện test: Mở CMD lên và chạy lệnh ''phpunit''
====== Viết các test-case ======
Test case là các file php đặt vào thư mục ''tests/phpunit/tests''. Nội dung file là một class test, extends từ class ''NukeViet\Test\TestCase''
* @Copyright (C) 2014 VINADES.,JSC. All rights reserved
* @License GNU/GPL version 2 or any later version
* @Createdate 31/05/2010, 00:36
*/
use \NukeViet\Test\TestCase;
class HelloWorld extends TestCase
{
public function testPushAndPop()
{
$this->assertTrue(TRUE);
}
public function connectDB()
{
//
}
}
====== Một số quy định của PHPUnit ======
* Mỗi phương thức test phải là public và bắt đầu bằng test. Ví dụ public function testConnectDB()
* Nếu không bắt đầu bằng test thì hãy sử dụng document của hàm bằng ''@test''
* Trong mỗi phương thức test cần sử dụng ''assertion methods'' nếu không sẽ sinh cảnh báo ''risky test''.
* Sử dụng phương thức ''setUp()'' và ''tearDown()'' để xử lý khi bắt đầu và kết thúc test nếu cần thiết