Phpunit Là Gì

  -  

Giới thiệu

Biết rằng Unit Test đặc biệt quan trọng và mang về nhiều ích lợi là mặc dù vậy vấn đề vận dụng, thực hiện ra làm sao mang đến đúng với hiệu quả là 1 trong điều rất khó.

Bạn đang xem: Phpunit là gì

Bài viết này là bài bài thứ nhất trong loạt bài xích lí giải triển khai Unit Test trong PHP, được dịch tự blog của tác giả Juan Treminio. Đây có lẽ rằng là tutorial chi tiết độc nhất vô nhị nhưng tôi hiểu được.Bài dịch có một trong những update về version của PHP cùng PHPUnit đối với blog của người sáng tác. Dưới đó là liên kết đến các phần không giống của tutorial (đã update liên kết Lúc viết xong):

PHPhường Unit Test 601: Mock Methods và Constructor Overriding

Loạt bài này đang ra mắt cho bạn các khái niệm cơ bản về testing. Nó vẫn cho bạn biết do sao câu hỏi áp dụng static là không xuất sắc, tại sao Dependency Injection hoàn hảo nhất, sự khác biệt giữa mochồng cùng stub cùng làm cố gắng như thế nào nhằm yêu loại thanh hao red color, xanh ấy.

Tôi cũng biến thành nhắc một chút mang lại Test-Driven Development (TDD) nhưng lại sẽ không còn triệu tập nhiều vào nó bởi tôi nghĩ rằng để code của người sử dụng trngơi nghỉ nên testable và làm sao để thử nghiệm nó một biện pháp chính xác đang là 1 thử thách đầy đủ mập cần được học trước tiên, nhưng không cần phải vượt quyên tâm cho một tiến trình phát triển hoàn toàn không giống.

Bài viết sẽ không nói các về Việc tại sao bạn nên viết chạy thử, tại sao testing là cần thiết cùng số đông ích lợi của testing. Nếu bạn có nhu cầu được thông não về đầy đủ điều đó, tôi khuyên ổn chúng ta nên hiểu qua cuốn nắn Real-World Solutions for Developing High-Quality PHP Frameworks & Applications của Sebastian Bergmann cùng xẹp thăm blog của đồng bọn tôi Chris Hartjes, The Grumpy Programmer"s blog, bạn nhưng vẫn la hét vào cộng đồng PHPhường trong vô số nhiều năm rằng bọn họ phải viết kiểm tra.Dường như, bên trên vhpi.vn đã và đang có khá nhiều bài viết bàn về Unit Test, chúng ta rất nên phát âm qua:

Trước Lúc bắt đầu

Bài viết giả sử chúng ta đã setup PHPhường. Tôi hết sức khuim chúng ta nên áp dụng một vật dụng ảo dành riêng cho môi trường thiên nhiên phát triển ráng bởi vì tùy chỉnh cấu hình nó ngay lập tức bên trên hệ quản lý và điều hành của chúng ta. Bạn có thể phát âm qua bài viết Setting Up a Debian VM, Step by Step, lý giải mỗi bước sử dụng Virtual Box để thiết lập cấu hình PHP cùng website server trên Debian, hoặc tham khảo các nội dung bài viết bên trên vhpi.vn về sử dụng Docker nhằm chế tạo ra môi trường xung quanh cải tiến và phát triển.

Chúng ta cũng biến thành áp dụng mẫu lệnh để chạy PHPUnit... Nếu nhiều người đang quen cùng với bài toán làm cho hầu hết máy trên hình ảnh GUI, thì đây cũng là thời gian cho bạn làm quen cùng với Terminal.

Cài đặt PHPUNIT

PHPUnit 6.2 đề nghị PHP 7 với những thư viện dom, json với mbstring, hay đã có được cài đặt mặc định khi cài đặt PHPhường. Kiểm tra bằng cách:

php -r "print_r(get_loaded_extensions());"Nếu chưa xuất hiện thì thiết lập chế tạo, vd đối với Ubuntu ^16.04:

subởi apt install php-xml php-json php-mbstringTính năng tạo thành báo cáo Code Coverage thưởng thức Xdebug (giải đáp thiết đặt, nội dung bài viết giới thiệu của tác giả) (phiên bản 2.5.0 hoặc mới hơn) và thư viện tokenizer (đã có sẵn Khi thiết lập PHP).

Xem thêm: Monthly Statement Of Account Là Gì Trong Tiếng Việt? Statement Of Account Là Gì

Cách đơn giản dễ dàng độc nhất vô nhị là thiết đặt trải qua Composer. Nếu các bạn lần chần Composer là gì tuyệt cách sử dụng nó thì bạn nên đọc bài viết, Composer Namespaces in 5 minutes. Nó trình làng bạn cùng với Composer nói thông thường và bí quyết sử dụng PSR-0 cho việc autoloading.

Cài đặt:

composer require --dev phpunit/phpunit ^6.2

Chạy PHPUnit

Sau Lúc cài đặt ngừng hãy chăm chú đến file ./vendor/bin/phpunit. Đây là tệp tin dùng để làm thực hiện PHPUnit.Chạy lệnh: ./vendor/bin/phpunit, nó đã hiển thị toàn bộ các tùy lựa chọn help.
*

Cấu trúc project

Do họ đang áp dụng Composer đề xuất vẫn cần cấu trúc project một chút nhằm nó vận động cùng với autoloader. Các file mã mối cung cấp sẽ được viết vào tlỗi mục src cùng với namespace là App cùng unit tests sẽ tiến hành viết vào tlỗi mục tests cùng với namespace là Tests.

Update tệp tin composer.json của công ty nhỏng sau:

"require-dev": "phpunit/phpunit": "^6.2" , "autoload": "psr-4": "App\": "src/" , "autoload-dev": "psr-4": "Tests\": "tests/" Sau kia chạy lệnh nhằm update autoloader:

composer dump-autoloadvì thế cấu trúc project của họ nhỏng sau:

phpunit-tut/|-- composer.json|-- composer.lock|-- phpunit.xml|-- src|-- tests|-- vendor

Cấu hình tệp tin phpunit.xml

quý khách rất có thể sử dụng các tùy chọn trong mẫu lệnh để thông số kỹ thuật mang đến phpunit tuy nhiên có một cách dễ dàng và đơn giản rộng sẽ là thực hiện tệp tin thông số kỹ thuật phpunit.xml.

Trong thư mục root phpunit-tut sản xuất tệp tin phpunit.xml:

phpunit colors="true"> testsuites> testsuite name="Application Test Suite"> directory>./tests/directory> testsuite> testsuites>phpunit>Đây là file thông số kỹ thuật đơn giản và dễ dàng độc nhất, mặc dù có 2 điểm quan tiền trọng:

colors="true" tạo cho công dụng chạy thử được bôi color./tests/ cho PHPUnit biết nơi lưu các tệp tin tests

CONVENTIONS

Trong loạt nội dung bài viết này sẽ có một trong những conventions góp cho mình thực hiện PHPUnit dễ dãi rộng, mặc dù gồm một số trong những convention là không yêu cầu.

Xem thêm: Neighbours From Hell 2: On Vacation Download, Neighbours From Hell: Season 2 3

Cấu trúc và tên file

Convention trước tiên là về cấu tạo file cùng tên file. Các tệp tin tests bắt buộc ánh xạ với những file mã nguồn tương xứng trong từng thư mục cùng thương hiệu file nên được sắp xếp như thể với file mã nguồn cộng thêm từ bỏ Test làm việc sau. lấy một ví dụ, giả dụ chúng ta bao gồm những tệp tin mã mối cung cấp nlỗi sau:

./src/Foo.php./src/Bar.php./src/Controller/Baz.phpThì các file tests buộc phải được tổ chức triển khai nlỗi sau:

./tests/FooTest.php./tests/BarTest.php./tests/Controller/BazTest.php

Tên lớp

Tên lớp buộc phải khớp hoàn toàn với thương hiệu tệp tin, vấn đề này cũng bắt buộc vận dụng cùng với những file mã nguồn khác.

Tên những method (test)

Các thủ tục trong những lớp thử nghiệm đề nghị được bước đầu cùng với tự chạy thử (mặc dù chúng ta cũng có thể thực hiện annotation