Kiểm tra đơn vị trong PHP là gì?

PHPUnit là một khung kiểm tra đơn vị cho ngôn ngữ lập trình PHP. Nó là một ví dụ về kiến ​​trúc xUnit cho các khung kiểm tra đơn vị có nguồn gốc từ SUnit và trở nên phổ biến với JUnit. PHPUnit được tạo bởi Sebastian Bergmann và quá trình phát triển của nó được lưu trữ trên GitHub

Mục đích[sửa]

PHPUnit dựa trên ý tưởng rằng các nhà phát triển có thể nhanh chóng tìm ra lỗi trong mã mới được cam kết của họ và khẳng định rằng không có hồi quy mã nào xảy ra trong các phần khác của cơ sở mã. Giống như các khung kiểm tra đơn vị khác, PHPUnit sử dụng các xác nhận để xác minh rằng hành vi của thành phần cụ thể - hoặc "đơn vị" - đang được kiểm tra hoạt động như mong đợi. [3]

Lợi ích[sửa]

Mục tiêu của kiểm thử đơn vị là cô lập từng phần của chương trình và chỉ ra rằng từng phần đó là chính xác. Một bài kiểm tra đơn vị cung cấp một hợp đồng nghiêm ngặt bằng văn bản mà đoạn mã phải đáp ứng. Kết quả là, các bài kiểm tra đơn vị tìm ra vấn đề sớm trong chu kỳ phát triển

PHPUnit có thể xuất kết quả kiểm tra ở một số định dạng khác nhau, bao gồm JUnit XML và TestDox

Lỗ hổng[sửa]

Một lỗ hổng cho phép kẻ tấn công thực thi mã từ xa thông qua PHPUnit đã được phát hiện vào cuối năm 2017. Bằng cách gửi trọng tải mã PHP tới một tệp là một phần của PHPUnit, kẻ tấn công có thể thực thi mã PHP trên máy chủ web. [4]

Laravel được xây dựng với mục đích thử nghiệm. Trên thực tế, hỗ trợ kiểm tra với PHPUnit được bao gồm sẵn và một tệp

php artisan make:test UserTest --unit

0 đã được thiết lập cho ứng dụng của bạn. Khung này cũng cung cấp các phương thức trợ giúp thuận tiện cho phép bạn kiểm tra rõ ràng các ứng dụng của mình

Theo mặc định, thư mục

php artisan make:test UserTest --unit

1 của ứng dụng của bạn chứa hai thư mục.

php artisan make:test UserTest --unit

2 và

php artisan make:test UserTest --unit

3. Bài kiểm tra đơn vị là bài kiểm tra tập trung vào một phần rất nhỏ, riêng biệt trong mã của bạn. Trên thực tế, hầu hết các bài kiểm tra đơn vị có thể tập trung vào một phương pháp duy nhất. Các kiểm tra trong thư mục kiểm tra "Đơn vị" của bạn không khởi động ứng dụng Laravel của bạn và do đó không thể truy cập cơ sở dữ liệu của ứng dụng hoặc các dịch vụ khung khác

Các bài kiểm tra tính năng có thể kiểm tra phần lớn mã của bạn, bao gồm cách một số đối tượng tương tác với nhau hoặc thậm chí là một yêu cầu HTTP đầy đủ tới một điểm cuối JSON. Nói chung, hầu hết các bài kiểm tra của bạn phải là bài kiểm tra tính năng. Các loại thử nghiệm này mang lại sự tự tin nhất rằng toàn bộ hệ thống của bạn đang hoạt động như dự kiến

Tệp

php artisan make:test UserTest --unit

4 được cung cấp trong cả thư mục kiểm tra

php artisan make:test UserTest --unit

2 và

php artisan make:test UserTest --unit

3. Sau khi cài đặt ứng dụng Laravel mới, hãy thực hiện các lệnh

php artisan make:test UserTest --unit

7 hoặc

php artisan make:test UserTest --unit

8 để chạy thử nghiệm của bạn

Môi trường

Khi chạy thử nghiệm, Laravel sẽ tự động đặt môi trường cấu hình thành

php artisan make:test UserTest --unit

9 do các biến môi trường được xác định trong tệp

php artisan make:test UserTest --unit

0. Laravel cũng tự động định cấu hình phiên và bộ đệm cho trình điều khiển

php artisan make:test UserTest --unit

11 trong khi thử nghiệm, nghĩa là sẽ không có dữ liệu phiên hoặc bộ đệm nào được duy trì trong khi thử nghiệm

Bạn có thể tự do xác định các giá trị cấu hình môi trường thử nghiệm khác nếu cần. Các biến môi trường

php artisan make:test UserTest --unit

9 có thể được định cấu hình trong tệp

php artisan make:test UserTest --unit

0 của ứng dụng của bạn, nhưng hãy đảm bảo xóa bộ nhớ cache cấu hình của bạn bằng lệnh

php artisan make:test UserTest --unit

14 Artisan trước khi chạy thử nghiệm

Tệp môi trường

php artisan make:test UserTest --unit

15

Ngoài ra, bạn có thể tạo tệp

php artisan make:test UserTest --unit

15 trong thư mục gốc của dự án của mình. Tệp này sẽ được sử dụng thay cho tệp

php artisan make:test UserTest --unit

17 khi chạy thử nghiệm PHPUnit hoặc thực thi lệnh Artisan với tùy chọn

php artisan make:test UserTest --unit

18

Tính cách

php artisan make:test UserTest --unit

19

Laravel bao gồm một đặc điểm

php artisan make:test UserTest --unit

19 được áp dụng cho lớp cơ sở

php artisan make:test UserTest --unit

11 của ứng dụng của bạn. Đặc điểm này chứa một phương thức

php artisan make:test UserTest --unit

12 khởi động ứng dụng Laravel trước khi chạy thử nghiệm của bạn. Điều quan trọng là bạn phải để đặc điểm này ở vị trí ban đầu vì một số tính năng, chẳng hạn như tính năng kiểm tra song song của Laravel, phụ thuộc vào nó

Tạo bài kiểm tra

Để tạo một trường hợp thử nghiệm mới, hãy sử dụng lệnh Artisan

php artisan make:test UserTest --unit

13. Theo mặc định, các bài kiểm tra sẽ được đặt trong thư mục

php artisan make:test UserTest --unit

14

php artisan make:test UserTest --unit

5

Nếu bạn muốn tạo một bài kiểm tra trong thư mục

php artisan make:test UserTest --unit

15, bạn có thể sử dụng tùy chọn

php artisan make:test UserTest --unit

16 khi thực hiện lệnh

php artisan make:test UserTest --unit

13

php artisan make:test UserTest --unit

Nếu bạn muốn tạo một bài kiểm tra Pest PHP, bạn có thể cung cấp tùy chọn

php artisan make:test UserTest --unit

18 cho lệnh

php artisan make:test UserTest --unit

13

php artisan make:test UserTest --unit

1

Lưu ý
Sơ khai bài kiểm tra có thể được tùy chỉnh bằng cách xuất bản sơ khai.

Khi thử nghiệm đã được tạo, bạn có thể xác định các phương thức thử nghiệm như bình thường bằng cách sử dụng PHPUnit. Để chạy thử nghiệm của bạn, hãy thực hiện lệnh

php artisan make:test UserTest --unit

7 hoặc

php artisan make:test UserTest --unit

8 từ thiết bị đầu cuối của bạn

php artisan make:test UserTest --unit

1

Cảnh báo
Nếu bạn định nghĩa các phương thức

php artisan make:test UserTest --unit

62 /

php artisan make:test UserTest --unit

63 của riêng mình trong một lớp thử nghiệm, hãy đảm bảo gọi các phương thức

php artisan make:test UserTest --unit

64 /

php artisan make:test UserTest --unit

65 tương ứng trên lớp cha.

Chạy thử nghiệm

Như đã đề cập trước đây, khi bạn đã viết bài kiểm tra, bạn có thể chạy chúng bằng cách sử dụng

php artisan make:test UserTest --unit

66

Ngoài lệnh

php artisan make:test UserTest --unit

66, bạn có thể sử dụng lệnh

php artisan make:test UserTest --unit

68 Artisan để chạy thử nghiệm của mình. Trình chạy thử Artisan cung cấp các báo cáo thử nghiệm chi tiết để dễ dàng phát triển và gỡ lỗi

Bất kỳ đối số nào có thể được chuyển tới lệnh

php artisan make:test UserTest --unit

66 cũng có thể được chuyển tới lệnh Artisan

php artisan make:test UserTest --unit

68

php artisan make:test UserTest --unit

6

Chạy thử nghiệm song song

Theo mặc định, Laravel và PHPUnit thực hiện tuần tự các bài kiểm tra của bạn trong một quy trình duy nhất. Tuy nhiên, bạn có thể giảm đáng kể lượng thời gian chạy thử nghiệm của mình bằng cách chạy thử nghiệm đồng thời trên nhiều quy trình. Để bắt đầu, đảm bảo ứng dụng của bạn phụ thuộc vào phiên bản

php artisan make:test UserTest --unit

61 hoặc cao hơn của gói

php artisan make:test UserTest --unit

62. Sau đó, bao gồm tùy chọn

php artisan make:test UserTest --unit

63 khi thực hiện lệnh

php artisan make:test UserTest --unit

68 Artisan

Theo mặc định, Laravel sẽ tạo bao nhiêu quy trình tùy theo số lõi CPU có sẵn trên máy của bạn. Tuy nhiên, bạn có thể điều chỉnh số lượng quy trình bằng tùy chọn

php artisan make:test UserTest --unit

65

php artisan make:test UserTest --unit

6

Cảnh báo
Khi chạy thử nghiệm song song, một số tùy chọn PHPUnit (chẳng hạn như

php artisan make:test UserTest --unit

66) có thể không khả dụng.

Kiểm tra song song & Cơ sở dữ liệu

Miễn là bạn đã định cấu hình kết nối cơ sở dữ liệu chính, Laravel sẽ tự động xử lý việc tạo và di chuyển cơ sở dữ liệu thử nghiệm cho từng quy trình song song đang chạy thử nghiệm của bạn. Cơ sở dữ liệu thử nghiệm sẽ được thêm vào một mã thông báo quy trình duy nhất cho mỗi quy trình. Ví dụ: nếu bạn có hai quy trình kiểm tra song song, Laravel sẽ tạo và sử dụng cơ sở dữ liệu kiểm tra

php artisan make:test UserTest --unit

67 và

php artisan make:test UserTest --unit

68

Theo mặc định, cơ sở dữ liệu kiểm tra vẫn tồn tại giữa các lần gọi lệnh

php artisan make:test UserTest --unit

68 Artisan để chúng có thể được sử dụng lại bởi các lần gọi

php artisan make:test UserTest --unit

68 tiếp theo. Tuy nhiên, bạn có thể tạo lại chúng bằng tùy chọn

php artisan make:test UserTest --unit

71

php artisan make:test UserTest --unit

7

Móc kiểm tra song song

Đôi khi, bạn có thể cần chuẩn bị một số tài nguyên nhất định được sử dụng bởi các thử nghiệm của ứng dụng để chúng có thể được sử dụng an toàn bởi nhiều quy trình thử nghiệm

Sử dụng mặt tiền

php artisan make:test UserTest --unit

72, bạn có thể chỉ định mã sẽ được thực thi trên

php artisan make:test UserTest --unit

62 và

php artisan make:test UserTest --unit

63 của quy trình hoặc trường hợp thử nghiệm. Các bao đóng đã cho nhận các biến

php artisan make:test UserTest --unit

75 và

php artisan make:test UserTest --unit

76 chứa mã thông báo quy trình và trường hợp thử nghiệm hiện tại, tương ứng

php artisan make:test UserTest --unit

4

Truy cập mã thông báo kiểm tra song song

Nếu bạn muốn truy cập "mã thông báo" quy trình song song hiện tại từ bất kỳ vị trí nào khác trong mã kiểm tra ứng dụng của mình, bạn có thể sử dụng phương pháp

php artisan make:test UserTest --unit

77. Mã thông báo này là mã định danh chuỗi, duy nhất cho một quy trình kiểm tra riêng lẻ và có thể được sử dụng để phân đoạn tài nguyên trên các quy trình kiểm tra song song. Ví dụ: Laravel tự động thêm mã thông báo này vào cuối cơ sở dữ liệu thử nghiệm được tạo bởi mỗi quy trình thử nghiệm song song

php artisan make:test UserTest --unit

6

Báo cáo phạm vi kiểm tra

Cảnh báo
Tính năng này yêu cầu Xdebug hoặc PCOV.

Khi chạy thử nghiệm ứng dụng của mình, bạn có thể muốn xác định xem các trường hợp thử nghiệm của mình có thực sự bao gồm mã ứng dụng hay không và lượng mã ứng dụng được sử dụng khi chạy thử nghiệm của bạn. Để thực hiện điều này, bạn có thể cung cấp tùy chọn

php artisan make:test UserTest --unit

78 khi gọi lệnh

php artisan make:test UserTest --unit

68

Thực thi ngưỡng bảo hiểm tối thiểu

Bạn có thể sử dụng tùy chọn

php artisan make:test UserTest --unit

40 để xác định ngưỡng phạm vi kiểm tra tối thiểu cho ứng dụng của mình. Bộ kiểm tra sẽ thất bại nếu ngưỡng này không được đáp ứng

Ý nghĩa của bài kiểm tra đơn vị là gì?

Kiểm tra đơn vị là một cách kiểm tra đơn vị - đoạn mã nhỏ nhất có thể được tách biệt một cách logic trong hệ thống . Trong hầu hết các ngôn ngữ lập trình, đó là hàm, chương trình con, phương thức hoặc thuộc tính. Phần biệt lập của định nghĩa là quan trọng.

PHPUnit dùng để làm gì?

PHPUnit là khung thử nghiệm đơn vị cho ngôn ngữ lập trình PHP . Nó là một ví dụ về kiến ​​trúc xUnit cho các khung kiểm tra đơn vị có nguồn gốc từ SUnit và trở nên phổ biến với JUnit. PHPUnit được tạo bởi Sebastian Bergmann và quá trình phát triển của nó được lưu trữ trên GitHub.

Kiểm tra đơn vị với ví dụ là gì?

Kiểm tra đơn vị là gì? . Nó được thực hiện trong giai đoạn mã hóa bởi các nhà phát triển. Để thực hiện kiểm tra đơn vị, nhà phát triển viết một đoạn mã (kiểm tra đơn vị) để xác minh mã được kiểm tra (đơn vị) là chính xác. testing the smallest testable unit of an application. It is done during the coding phase by the developers. To perform unit testing, a developer writes a piece of code (unit tests) to verify the code to be tested (unit) is correct.

Thử nghiệm đơn vị là gì và các loại của nó?

Kiểm tra đơn vị được định nghĩa là một loại kiểm tra phần mềm trong đó các thành phần riêng lẻ của phần mềm được kiểm tra . Kiểm thử đơn vị sản phẩm phần mềm được thực hiện trong quá trình phát triển ứng dụng. Một thành phần riêng lẻ có thể là một chức năng riêng lẻ hoặc một thủ tục.