Giới thiệu

Biết rằng Unit Test quan trọng và đem đến các tác dụng là tuy vậy vấn đề áp dụng, tiến hành thế nào đến đúng với kết quả là một trong những điều không dễ.

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

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

PHP Unit Test 601: Moông xã Methods với Constructor Overriding

Loạt bài bác này sẽ giới thiệu cho chính mình những có mang cơ bản về testing. Nó đã cho mình biết vày sao câu hỏi áp dụng static là không xuất sắc, tại vì sao Dependency Injection hoàn hảo, sự biệt lập thân moông chồng với stub và làm nỗ lực làm sao để yêu thương loại tkhô giòn red color, xanh ấy.

Tôi cũng biến thành nói một chút ít đến Test-Driven Development (TDD) mà lại sẽ không triệu tập nhiều vào nó vì tôi nghĩ rằng để code của chúng ta trsinh hoạt đề xuất testable với làm thế nào nhằm thử nghiệm nó một phương pháp chính xác sẽ là một trong thách thức đầy đủ mập cần được học trước tiên, mà lại không cần thiết phải thừa quyên tâm mang đến một tiến trình cải tiến và phát triển hoàn toàn khác.

Bài viết sẽ không còn nói các về câu hỏi tại sao bạn nên viết chạy thử, vì sao testing là quan trọng với mọi công dụng của testing. Nếu bạn muốn được thông óc về mọi điều đó, tôi khuyên chúng ta nên hiểu qua cuốn Real-World Solutions for Developing High-Quality PHP.. Frameworks & Applications của Sebastian Bergmann và ghé thăm blog của bạn bè tôi Chris Hartjes, The Grumpy Programmer"s blog, người mà sẽ la hét vào cộng đồng PHPhường trong vô số năm rằng họ yêu cầu viết demo.Dường như, bên trên alokapidakaldim.com đã và đang có không ít nội dung bài viết bàn về Unit Test, các bạn siêu bắt buộc hiểu qua:

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

Bài viết trả sử các bạn vẫn setup PHPhường. Tôi hết sức khuyên ổn chúng ta nên áp dụng một đồ vật ảo dành riêng cho môi trường phát triển thay bởi vì tùy chỉnh cấu hình nó ngay trên hệ quản lý của người sử dụng. Quý Khách rất có thể hiểu qua bài viết Setting Up a Debian VM, Step by Step, hướng dẫn từng bước một áp dụng Virtual Box để thiết lập PHP với web server trên Debian, hoặc xem thêm các nội dung bài viết bên trên alokapidakaldim.com về thực hiện Docker để chế tác môi trường xung quanh cải cách và phát triển.

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

Cài đặt PHPUNIT

PHPUnit 6.2 tận hưởng PHPhường 7 và các thư viện dom, json với mbstring, hay đã có setup mang định khi thiết lập PHPhường. Kiểm tra bởi cách:

php -r "print_r(get_loaded_extensions());"Nếu chưa có thì mua chế tạo, vd đối với Ubuntu ^16.04:

suvị apt install php-xml php-json php-mbstringTính năng sản xuất report Code Coverage đề nghị Xdebug (khuyên bảo setup, bài viết trình làng của tác giả) (phiên bản 2.5.0 hoặc mới hơn) cùng tlỗi viện tokenizer (đang tất cả sẵn Lúc cài PHP).

Xem thêm: Những chiếc xe huyền thoại 1 thời ở Việt Nam

Cách dễ dàng và đơn giản độc nhất vô nhị là cài đặt trải qua Composer. Nếu các bạn lần khần Composer là gì giỏi biện pháp thực hiện nó thì chúng ta nên phát âm bài viết, Composer Namespaces in 5 minutes. Nó ra mắt chúng ta cùng với Composer nói tầm thường và phương pháp thực hiện PSR-0 mang đến câu hỏi autoloading.

Cài đặt:

composer require --dev phpunit/phpunit ^6.2

Chạy PHPUnit

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

Cấu trúc project

Do bọn họ sẽ thực hiện Composer bắt buộc sẽ đề xuất cấu trúc project một chút nhằm nó chuyển động với autoloader. Các tệp tin mã mối cung cấp sẽ được viết vào thư mục src cùng với namespace là App với unit tests sẽ tiến hành viết vào thỏng mục tests cùng với namespace là Tests.

Update file composer.json của công ty nlỗi sau:

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

composer dump-autoloadvì thế kết cấu project của bọn họ như sau:

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

Cấu hình file phpunit.xml

Quý Khách rất có thể thực hiện các tùy lựa chọn vào dòng lệnh nhằm cấu hình đến phpunit tuy nhiên gồm 1 cách đơn giản và dễ dàng rộng đó là áp dụng tệp tin thông số kỹ thuật phpunit.xml.

Trong folder root phpunit-tut chế tạo tệp tin phpunit.xml:

phpunit colors="true"> testsuites> testsuite name="Application Test Suite"> directory>./tests/directory> testsuite> testsuites>phpunit>Đây là tệp tin thông số kỹ thuật đơn giản duy nhất, mặc dù gồm 2 điểm quan liêu trọng:

colors="true" khiến cho kết quả thử nghiệm được bôi màu./tests/ mang đến PHPUnit biết chỗ giữ các tệp tin tests

CONVENTIONS

Trong loạt bài viết này sẽ có một trong những conventions giúp cho mình thực hiện PHPUnit thuận tiện rộng, mặc dù tất cả một số convention là ko buộc phải.

Xem thêm: Fame Là Gì? Bú Fame Nghĩa Là Gì ? Bú Fame, Bú Trend, Hám Fame Có Ý Nghĩa Như Thế

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

Convention đầu tiên là về cấu tạo tệp tin với thương hiệu tệp tin. Các tệp tin tests đề xuất ánh xạ cùng với các file mã nguồn tương ứng trong từng thỏng mục và thương hiệu file nên đặt giống như với file mã nguồn thêm vào đó từ bỏ Test sống sau. lấy ví dụ như, trường hợp họ tất cả các tệp tin mã mối cung cấp như sau:

./src/Foo.php./src/Bar.php./src/Controller/Baz.phpThì những tệp tin tests đề nghị được tổ chức triển khai nhỏng sau:

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

Tên lớp

Tên lớp đề xuất khớp hoàn toàn với thương hiệu tệp tin, điều đó cũng buộc phải áp dụng với các file mã mối cung cấp khác.

Tên các method (test)

Các thủ tục trong các lớp kiểm tra yêu cầu được bước đầu cùng với tự thử nghiệm (mặc dù bạn có thể áp dụng annotation

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *