Phpunit trực tuyến

Bài viết này là bài đầu tiên trong loạt bài tập trung vào `Unit Testing`, một phương pháp kiểm thử nổi tiếng. Tôi sẽ sử dụng `PHPUnit` làm công cụ kiểm tra chính cho PHP Unit Testing. Khi bạn đã nắm được những điều cơ bản, bắt đầu với PHPUnit không quá khó

PHPUnit là một khung kiểm tra đơn vị cho ngôn ngữ lập trình PHP. Đây là một ví dụ về thiết kế xUnit cho các hệ thống thử nghiệm đơn vị bắt đầu với SUnit và trở nên phổ biến với JUnit

Ngay cả một dự án phát triển phần mềm nhỏ cũng thường mất hàng giờ làm việc chăm chỉ. Trong quá trình phát triển, một số lỗi và sự cố lớn và nhỏ len lỏi trong cấu trúc và mã của ứng dụng. Các nhà phát triển thường cố gắng tìm ra các lỗi trong quá trình phát triển

Vấn đề là không có cách chắc chắn nào để đảm bảo rằng tất cả các lỗi đã được xử lý trong mã cuối cùng

Một khía cạnh quan trọng khác là khả năng xuất hiện thêm các lỗi khi các lỗi hiện có được sửa. Để giải quyết những vấn đề này, kiểm thử và QA là những thành phần không thể thiếu của quy trình phát triển phần mềm

Kiểm tra và QA là các thành phần không thể thiếu của quy trình phát triển phần mềm

Phát triển phần mềm cẩn thận đảm bảo rằng một số phương pháp thử nghiệm và QA được xây dựng trong quá trình phát triển ngay từ đầu. Kết quả của quá trình phát triển như vậy là một mã mạnh mẽ, dễ bảo trì và mở rộng hơn nữa

Bạn cũng có thể thích. Tích hợp liên tục PHP với Travis CI

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

Từ `Unit` dùng để chỉ một khối mã, phương thức hoặc một lớp riêng lẻ hoặc độc lập. Kiểm thử đơn vị là một quy trình kiểm thử phần mềm trong đó các khối mã được kiểm tra để xem liệu kết quả được tạo ra có phù hợp với mong đợi hay không. Các đơn vị được kiểm tra bằng cách viết một trường hợp thử nghiệm duy nhất

Kiểm tra đơn vị nói chung là tự động nhưng có thể được thực hiện thủ công. Tôi đã thiết kế một thuật toán ngắn để xác định trực quan cách hoạt động của bài kiểm tra đơn vị

Phpunit trực tuyến

Tại sao phải kiểm tra đơn vị?

Test Driven Development là một phương pháp mà bạn viết bài kiểm tra trước và viết mã sau để vượt qua bài kiểm tra. Cách tiếp cận này đảm bảo rằng số lượng lỗi phải được giải quyết trong khi phát triển. Nhà phát triển viết cẩn thận các trường hợp thử nghiệm trước rồi mới viết mã, vì cách làm này cho phép anh ta nhanh chóng tìm ra các lỗi tiềm ẩn

  • Thử nghiệm có thể được tự động cho tốc độ
  • Xác suất mã không có lỗi cao hơn
  • Mã kế thừa dễ hiểu
  • Tái cấu trúc mã đến điểm có thể kiểm tra và dễ hiểu
  • Tìm ra những gì đã xảy ra một cách nhanh chóng với các trường hợp thử nghiệm
  • Các tính năng mới có thể được mã hóa dễ dàng
  • Nó cũng giảm thiểu chi phí thay đổi trong phần mềm

Phiên bản hỗ trợ PHPUnit

Hiện tại, PHPUnit có nhiều phiên bản được hỗ trợ và có một số cập nhật lớn do các phiên bản PHP mới nhất được phát hành. Vì vậy, nó hoàn toàn tương thích với các phiên bản hiện tại và sắp tới của PHP. Bảng tương thích được hiển thị bên dưới

Phiên bản chínhKhả năng tương thíchPHPPhát hành ban đầuHỗ trợPHPUnit 8PHP 7. 2, PHP7. 3, PHP7. 4 Ngày 1 tháng 2 năm 2019 Hỗ trợ kết thúc vào ngày 5 tháng 2 năm 2021 PHPUnit 7 PHP 7. 1, PHP7. 2, PHP7. 3 2 Tháng 2, 2018 Hỗ trợ kết thúc vào 7 Tháng 2, 2020 PHPUnit 6 PHP 7. 0, PHP7. 1, PHP7. 2 3 Tháng 2, 2017 Hỗ trợ kết thúc vào 1 Tháng 2, 2019 PHPUnit 5PHP 5. 6, PHP7. 0, PHP7. 1 Ngày 2 tháng 10 năm 2015 Hỗ trợ đã kết thúc vào ngày 2 tháng 2 năm 2018

Giới thiệu PHPUnit 7

PHPUnit 7 được phát hành vào ngày 2 tháng 2 năm 2018 đi kèm với các tính năng thú vị, thay đổi và loại bỏ các tính năng thú vị

Ghi chú. PHPUnit 7 yêu cầu PHP 7. 1 hoặc phiên bản mới hơn

PHPUnit giải quyết các vấn đề tương thích trước đây

Phiên bản mới của thư viện giải quyết một số vấn đề tương thích gặp phải trong các phiên bản trước của PHPUnit. Để thảo luận chi tiết về chủ đề này, vui lòng xem tài liệu chính thức. Tôi cũng khuyên bạn nên xem nhật ký thay đổi của thư viện

Làm cách nào để cài đặt PHPUnit?

Để giải thích kiểm tra đơn vị PHP, tôi sẽ sử dụng thư viện PHPUnit, được phát triển bởi `Sebastian Burgmen`

Trước khi sử dụng thư viện, bạn cần thiết lập một môi trường phù hợp. Nếu bạn đang thực hiện thử nghiệm đơn vị trong môi trường cục bộ, bạn phải cài đặt XAMPP, Trình soạn thảo, Bật Xdebug và cuối cùng là cài đặt PHPUnit

Tuy nhiên, nhờ Cloudways PHP Hosting, bạn không cần cài đặt bất cứ thứ gì ngoại trừ PHPUnit. Dễ dàng kích hoạt Xdebug chỉ bằng một cú nhấp chuột trong tab `Advance` trong Quản lý máy chủ

Có liên quan. Cách lưu trữ PHP trên DigitalOcean

Đăng nhập vào thiết bị đầu cuối SSH bằng cách sử dụng Thông tin xác thực chính và chuyển đến thư mục ứng dụng bằng cách sử dụng lệnh

$ cd applications/qmsfumgabd/public_html/

Để cài đặt PHPUnit từ `Composer`, hãy chạy lệnh sau trong thiết bị đầu cuối SSH

public_html$ composer require --dev phpunit/phpunit ^7

Để cài đặt từ nhà soạn nhạc. json, thêm các dòng mã sau

{
 "require-dev": {
 "phpunit/phpunit": "^7"
 },
 "autoload": {
 "psr-0": {
 "UnitTestFiles": ""
 }
 }
}

Bạn cũng có thể cài đặt PHPUnit theo cách thủ công bằng cách tải xuống phiên bản PHPUnit mới nhất từ ​​Trang web chính thức

Làm cách nào để kiểm tra phiên bản PHP?

Nếu bạn cần kiểm tra Phiên bản PHP của mình, hãy nhập lệnh sau trên SSH Terminal

public_html$ php -v

Cấu trúc thư mục

Trước khi bắt đầu quá trình kiểm tra bằng PHPUnit, cần có cấu trúc thư mục phù hợp cho các tệp được kiểm tra. Hiện tại, cấu trúc thư mục sẽ trông như thế này

|--vendor
|--composer.json
|--composer.lock
|--index.php

Tôi sẽ tạo một thư mục mới cho các tệp được kiểm tra. Tạo một thư mục `UnitTestFiles`. Trong thư mục này, hãy tạo một thư mục con  `Test`. Tạo một tệp mới `phpunit. xml` trong thư mục con này và thêm đoạn mã sau vào nó





/UnitTestFiles/Test/




`colors=”true”` sẽ hiển thị kết quả bằng các màu được đánh dấu và `. /UnitTestFiles/Test/` sẽ hỏi PHPUnit về vị trí của các tệp sẽ được kiểm tra

Bây giờ cấu trúc thư mục sẽ giống như

|--vendor
|--UnitTestFiles/Test
|--phpunit.xml
|--composer.json
|--composer.lock
|--index.php

Tất cả các tệp dự án sẽ nằm trong thư mục gốc, trong khi các tệp cần kiểm tra sẽ nằm trong thư mục Kiểm tra

Bạn cũng có thể thích. Giới thiệu về Laravel Dusk. Thử nghiệm ứng dụng Todo

Quy ước cơ bản để viết Unit Test Case

Sau đây là một số quy ước cơ bản và các bước để viết bài kiểm tra với PHPUnit

  1. Tên tệp thử nghiệm phải có hậu tố Test. Ví dụ, nếu đầu tiên. php cần được kiểm tra, tên của tệp kiểm tra sẽ là FirstTest. php
  2. Tương tự, nếu tên lớp là `MyFirstClass` thì tên lớp kiểm tra sẽ là `MyFirstClassTest`
  3. Thêm test làm tiền tố cho tên phương thức. Ví dụ: nếu tên phương thức là `getuser()`, thì trong lớp kiểm tra, nó sẽ trở thành `testgetuser()`. Bạn cũng có thể sử dụng chú thích @test trong khối tài liệu để khai báo nó như một phương pháp thử nghiệm
  4. Tất cả các phương pháp thử nghiệm là `công khai`
  5. MyFirstClassTest nên được kế thừa từ `PHPUnit\Framework\TestCase`

Đây là những quy tắc cơ bản chính cho khung kiểm tra đơn vị PHP. Tất cả các cấu hình và cài đặt cần thiết đều được thiết lập. Đã đến lúc viết test case đầu tiên

Viết Unit Test Case đầu tiên trong PHP

Bây giờ tôi sẽ bắt đầu với một trường hợp thử nghiệm rất đơn giản

Tạo một tệp FirstTest. php trong UnitTestFiles/Kiểm tra. Thêm đoạn mã sau vào nó

?php
namespace UnitTestFiles\Test;
use PHPUnit\Framework\TestCase;


class FirstTest extends TestCase
{
public function testTrueAssetsToTrue()
{
$condition = true;
$this->assertTrue($condition);
}
}
?>

Đây là bài kiểm tra rất cơ bản. Trong dòng đầu tiên, tôi đã đề cập đến không gian tên nơi đặt các tệp thử nghiệm

Trong dòng thứ hai, tôi đã khởi tạo khung kiểm tra PHPUnit. FirstTest là lớp kiểm tra mở rộng Testcase. Tôi đã khai báo một phương thức `testTrueCheck()` với tiền tố test

Trong phương thức, tôi chỉ cần khai báo một biến `$condition = true`; . Lưu tệp và chạy nó qua thiết bị đầu cuối SSH bằng cách sử dụng lệnh sau

Phpunit trực tuyến

Đây là kết quả của bài kiểm tra đơn vị đầu tiên của chúng tôi. Để thực hiện một kiểm tra khác, chuyển false cho biến `$condition`. Kết quả hiện tại `$condition = true` được thay đổi thành  `$condition = false;` Chạy lệnh kiểm tra trong thiết bị đầu cuối SSH

Phpunit trực tuyến

Đường màu đỏ này cho biết thử nghiệm không thành công vì `assertTrue` báo cáo lỗi và xác định $condition là sai

Hãy xem một ví dụ khác trong đó nhà phát triển đã tạo mã để nhập địa chỉ email và xác thực nó cho trường hợp sử dụng có thể có thể là regex hoặc cho các quy tắc xác thực email khác

________số 8_______

Tôi đã tạo một lớp có tên là Email để lưu giá trị email trong biến riêng tư và chuyển nó tới hàm tạo. Hàm tạo có phương thức ensureIsValidEmail() để kiểm tra thêm email bằng cách sử dụng FILTER_VALIDATE_EMAIL và đưa ra một ngoại lệ nếu không hợp lệ

Bây giờ trong thư mục UnitTestFiles/Test, hãy tạo một tệp mới có tên EmailTest. php và thêm mã kiểm tra sau

assertInstanceOf(

           Email::class,

           Email::fromString('[email protected]')

       );

   }

   public function testCannotBeCreatedFromInvalidEmailAddress(): void

   {

       $this->expectException(InvalidArgumentException::class);



       Email::fromString('invalid');

   }

   public function testCanBeUsedAsString(): void

   {

       $this->assertEquals(

           '[email protected]',

           Email::fromString('[email protected]')

       );

   }

}

Ở đây tôi đã sử dụng phương thức assertInstanceOf() báo cáo lỗi được xác định bởi $message nếu $actual không phải là một phiên bản của $expected

Vì vậy, tôi đã chuyển hai đối số, lớp email thực tế và địa chỉ email dự kiến. Thử nghiệm thứ hai sẽ lấy giá trị đầu vào và đưa ra một ngoại lệ không hợp lệ nếu giá trị email không được xác thực. Bài kiểm tra thứ ba lấy giá trị đầu vào và coi nó là một chuỗi

Hãy chạy thử nghiệm trên trình soạn thảo bằng cách chạy lệnh sau

public_html$ composer require --dev phpunit/phpunit ^7
0

Phần kết luận

Bài viết này giải thích một thiết lập cơ bản giúp bạn bắt đầu với PHPUnit để kiểm tra đơn vị PHP. Tôi muốn đề cập đến một số thay đổi trong phiên bản mới nhất của PHPUnit. Trong các phiên bản trước, lớp mở rộng với `PHPUnit_Framework_TestCase`. Trong phiên bản mới nhất, nó chỉ mở rộng với `TestCase`. Trong phần thứ hai của loạt bài này, tôi sẽ giải thích một số chi tiết về Assertions, nhà cung cấp dữ liệu và các tính năng khác

Nếu có thắc mắc hoặc muốn đóng góp thảo luận, vui lòng để lại bình luận

Q. Làm cách nào để chạy hoặc gỡ lỗi kiểm tra PHPUnit?

Để chạy thử nghiệm đơn vị,

  • nhấp vào mũi tên bên cạnh nút Run trên thanh công cụ
  • chọn Chạy dưới dạng. Kiểm tra đơn vị PHP
  • Từ thanh Menu, chọn Run. Chạy như. Kiểm tra đơn vị PHP

Để gỡ lỗi Trường hợp kiểm tra PHPUnit,

  • nhấp vào mũi tên bên cạnh nút gỡ lỗi trên thanh công cụ
  • chọn Gỡ lỗi dưới dạng. Kiểm tra đơn vị PHP

Đánh giá của khách hàng tại

Phpunit trực tuyến

“Dịch vụ lưu trữ trên nền tảng đám mây có một trong những dịch vụ khách hàng tốt nhất và tốc độ lưu trữ”

Sanjit C [Nhà phát triển trang web]

Inshal Ali

Inshal là Nhà tiếp thị nội dung tại Cloudways. Với nền tảng về khoa học máy tính, kỹ năng nội dung và rất nhiều sáng tạo, anh ấy đã giúp doanh nghiệp vươn tới bầu trời và vượt xa thông qua nội dung nói ngôn ngữ của khách hàng của họ. Ngoài công việc, bạn sẽ thấy anh ấy chủ yếu trong một số trò chơi trực tuyến hoặc trên sân bóng

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

PHPUnit là gì? . PHPUnit là một phiên bản của kiến ​​trúc xUnit dành cho các khung kiểm tra đơn vị. Nó rất dễ cài đặt và bắt đầu sử dụng. unit testing in PHP with PHPUnit, a programmer-oriented testing framework for PHP. PHPUnit is an instance of the xUnit architecture for unit testing frameworks. It is very easy to install and get started with.

PHPUnit có phải là một khuôn khổ không?

PHPUnit là khung thử nghiệm dành cho lập trình viên dành cho PHP . Nó là một ví dụ về kiến ​​trúc xUnit cho các khung kiểm tra đơn vị. PHPUnit 9 là phiên bản ổn định hiện tại. PHPUnit 10 hiện đang được phát triển.

Làm cách nào để thiết lập PHPUnit?

Tải xuống và cài đặt phpunit. .
nhà soạn nhạc bên trong. json, hãy thêm bản ghi phụ thuộc phpunit/phpunit vào phần yêu cầu hoặc yêu cầu-dev. Nhấn Ctrl + Space để hoàn thành mã cho tên gói và phiên bản
làm một điều trong số sau đây. Nhấp vào liên kết phím tắt Cài đặt trên đầu bảng chỉnh sửa

Phiên bản mới nhất hiện tại của PHPUnit là gì?

Phiên bản dành cho PHPUnit 9. 5 . Cập nhật vào ngày 24 tháng 12 năm 2022.