PHPUnit tự động kiểm tra thực thi để xác minh hành vi của ứng dụng của bạn. Do đó – bạn có thể đảm bảo rằng các thay đổi của mình không phá vỡ chức năng hiện có. Bài đăng này sẽ chỉ cho bạn cách kiểm tra mã PHP của bạn bằng PHPUnit
Bạn có thể tìm hiểu thêm về mã hóa tại đây. Chúng tôi thảo luận về PHP, Bash, v.v.
Mục lục
- Thiết lập PHPUnit
- Kiểm tra mã PHP với PHPUnit
- Kiểm tra mã PHP của bạn
- kết thúc
- Bạn cũng có thể quan tâm
Thiết lập PHPUnit
Bạn có thể thiết lập PHPUnit bằng lệnh terminal sau khi điều hướng đến thư mục dự án
composer require --dev phpunit/phpunit ^9
Do đó, lệnh sẽ thêm yêu cầu của PHPUnit vào trình soạn thảo của bạn. tập tin json. Trình soạn thảo sau đó sẽ cài đặt các phụ thuộc. Với điều đó, bạn đã sẵn sàng và sẵn sàng để đi
Lưu ý rằng
- PHPUnit nên được thiết lập trên cơ sở từng dự án
- PHPUnit chỉ nên được sử dụng trong môi trường phát triển
- Sử dụng PHPUnit trên máy chủ web sẽ dẫn đến hành vi không mong muốn
- Bài viết này sử dụng Composer để cài đặt PHPUnit
Kiểm tra mã PHP với PHPUnit
PHPUnit cho phép người dùng kiểm tra nhiều trường hợp sử dụng trong một lần. Ví dụ: thay vì viết mã và sử dụng var_dump hoặc print_r để xác nhận giá trị, bạn có thể viết kiểm tra PHPUnit bằng cách xác nhận kết quả thu được so với kết quả mong đợi. Đừng lo. Chúng ta sẽ thảo luận chi tiết hơn về các xác nhận
Mã ví dụ để kiểm tra
Hãy xem xét Mật khẩu lớp PHP sau, kiểm tra độ mạnh của mật khẩu
Phương thức get_ strength() được sử dụng để đánh giá độ mạnh của mật khẩu—phương thức này kiểm tra hai loại dữ liệu. chữ cái và số. Độ mạnh của mật khẩu được xác định bởi số loại dữ liệu chứa trong đó. Phương thức trả về điểm 1 cho điểm yếu và 2 điểm cho điểm mạnh. Phương thức validate() kiểm tra xem mật khẩu có lớn hơn 8 không và điểm có lớn hơn 0 không. Nếu xác thực không thành công, UnlimitedPasswordException sẽ bị ném
<?php class Password { protected $password = ""; function __construct($password = "") { $this->password = $password; } public function validate(){ if(strlen($this->password) < 8){ throw new InvalidPasswordException(); } if($this->get_strength() == 0){ throw new InvalidPasswordException(); } } public function get_strength(){ $strength = 0; if(preg_match('/[A-Za-z]/', $this->password)){ // Letter found! $strength +=1; } if(preg_match('/[0-9]/', $this->password)){ // Digit found! $strength += 1; } return $strength; } } class InvalidPasswordException extends Exception{ public function errorMessage() { //error message $errorMsg = 'Invalid password. Make sure the password length is more than 8 and contains alphanumeric characters.'; return $errorMsg; } }
Dưới đây là một số trường hợp sử dụng cho lớp Mật khẩu
- Một mật khẩu kiểu dữ liệu cho điểm 1
- Mật khẩu hai loại dữ liệu cho điểm 2
- Mật khẩu chỉ ký hiệu (điểm 0) đưa ra một ngoại lệ khi xác thực
- Mật khẩu có độ dài bảy hoặc ít hơn sẽ đưa ra một ngoại lệ khi xác thực
Kiểm tra các trường hợp sử dụng có thể có cho lớp Mật khẩu bằng cách in và so sánh mọi trường hợp sử dụng. Tuy nhiên, PHPUnit cung cấp một phương pháp mạnh mẽ hơn để kiểm tra. Hãy để chúng tôi bắt đầu bằng cách tạo một tệp PasswordTest. php
kiểm tra ví dụ
PHPUnit có một số quy ước mà khung sử dụng để kiểm tra
- Các bài kiểm tra cho lớp ClassName đi theo ClassNameTest, tôi. e. nó bắt đầu bằng tên lớp và kết thúc bằng Kiểm tra
- Các lớp kiểm tra kế thừa PHPUnit/Framework/TestCase. Điều này cho phép các lớp kiểm tra sử dụng các phương thức PHPUnit như xác nhận
- Mỗi bài kiểm tra bên trong lớp là một chức năng công khai. Tên của hàm bắt đầu bằng test*
Các chức năng này sẽ sử dụng các xác nhận để kiểm tra mã. Một xác nhận không thành công không kiểm tra. Một bài kiểm tra có thể có một số khẳng định, e. g. Trong trường hợp kiểm tra lớp Mật khẩu 1, bạn sẽ cần xác nhận lần lượt từng loại trong số hai loại dữ liệu để xác nhận rằng một mật khẩu loại dữ liệu cho điểm 1. Do đó một bài kiểm tra sẽ có nhiều xác nhận
Lớp PasswordTest kiểm tra từng trường hợp trong số 4 trường hợp kiểm tra cho lớp Mật khẩu từng cái một. Mỗi trường hợp sử dụng được kiểm tra riêng. Mỗi chức năng trong lớp kiểm tra một trong các trường hợp sử dụng. Một quy ước khác là tên của hàm (các từ có vỏ lạc đà theo sau là từ kiểm tra*) cũng là một mô tả ngắn về những gì kiểm tra thực hiện
<?php // Loading up TestCase use PHPUnit\Framework\TestCase; require "Password.php"; class PasswordTest extends TestCase{ public function testOneDatatypePasswordGivesScoreOf1(){ $pass = new Password("Foopassword"); $strength = $pass->get_strength(); // Asserting that strength is 1 $this->assertEquals(1, $strength); $pass = new Password("123123123"); $strength = $pass->get_strength(); // Asserting that strength is 1 $this->assertEquals(1, $strength); } public function testTwoDatatypePasswordGivesScoreOf2(){ $pass = new Password("Foobar123"); $strength = $pass->get_strength(); // Asserting that strength is 1 $this->assertEquals(2, $strength); } public function testScoreOf0ThrowsException() { // Declaring an Exception is expected in the below code $this->expectException(InvalidPasswordException::class); $pass = new Password("#!#!#!!#!#!"); $pass->validate(); } public function testPasswordLengthLessThan8ThrowsException() { // Declaring an Exception is expected in the below code $this->expectException(InvalidPasswordException::class); $pass = new Password("foo"); $pass->validate(); } }
Để thử nghiệm, chúng tôi sử dụng các phương thức assert*. Đối với các trường hợp ngoại lệ, chúng ta có thể sử dụngexpectedExeption (Ngoại lệ. class) để kiểm tra xem mã có đưa ra một ngoại lệ chính xác hay không
Kiểm tra mã PHP của bạn
Kiểm tra khá đơn giản với PHPUnit. Bạn cần chạy lệnh sau từ thư mục dự án của mình
./vendor/bin/PHPUnit PasswordTest.php
Nếu tất cả các thử nghiệm thành công, đầu ra sau đây sẽ được đưa ra
Một cách khác là kiểm tra bằng cách sử dụng tên hàm dưới dạng mô tả ngắn cho mỗi lần kiểm tra
./vendor/bin/PHPUnit --testdox PasswordTest.php
PHPUnit cũng có thể được sử dụng để kiểm tra tất cả các tệp kiểm tra trong một thư mục bằng lệnh sau
./vendor/bin/PHPUnit
Hoặc
./vendor/bin/PHPUnit --testdox
Đầu ra sẽ rất giống với ở trên
kết thúc
PHPUnit là một khung kiểm tra PHP mạnh mẽ. PHPUnit yêu cầu một *Test. tệp php chứa lớp *Test. Lớp phải mở rộng lớp PHPUnit\Framework\TestCase. Sau đó, bạn có thể thực hiện các bài kiểm tra của mình
Bạn cũng có thể quan tâm
- Kết quả kiểm tra tốc độ Wasabi S3 từ Sydney/Úc
- Cách kiểm tra mã PHP của bạn với tư cách là người dùng dữ liệu www
- Công cụ quét các vấn đề về trang web
- Cách xem lỗi shell_exec() trong PHP
- Cloud 101 – Dịch vụ lưu trữ đơn giản của Amazon Web Services (AWS) (S3)
Nguồn
- Trang web PHPUnit
- Tài liệu PHPUnit
- Hoàn thành thuật ngữ khẳng định PHPUnit
- Cách sử dụng cơ bản của nhà soạn nhạc
Giới thiệu về tác giả
Nhóm biên tập của Anto cũng yêu thích đám mây như bạn. Mỗi thành viên trong nhóm biên tập của Anto đều là chuyên gia về Đám mây theo cách riêng của họ. Anto Online rất tự hào trong việc giúp đỡ những người đam mê Cloud. Hãy cho chúng tôi biết nếu bạn có ý tưởng tuyệt vời cho chủ đề tiếp theo. Liên hệ với Anto Online nếu bạn muốn đóng góp