Làm cách nào để kiểm tra tập lệnh php?

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

Làm cách nào để kiểm tra tập lệnh php?

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

Làm cách nào để kiểm tra tập lệnh php?

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

Làm cách nào để kiểm tra tập lệnh php?

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

Chúng tôi có thể kiểm tra mã PHP không?

Bạn không thể làm điều đó . Bởi vì tập lệnh phía máy chủ (ở đây là tập lệnh PHP) thực thi trên máy chủ web và đầu ra của nó được nhúng bên trong HTML, sau đó được đưa trở lại trình duyệt của bạn. Vì vậy, tất cả những gì bạn có thể xem là HTML.

Tôi có thể kiểm tra PHP mà không cần máy chủ web không?

Bạn có thể tạo tập lệnh PHP để chạy tập lệnh đó mà không cần bất kỳ máy chủ hay trình duyệt nào . Bạn chỉ cần trình phân tích cú pháp PHP để sử dụng nó theo cách này. Kiểu sử dụng này lý tưởng cho các tập lệnh được thực thi thường xuyên bằng cron (trên *nix hoặc Linux) hoặc Trình lập lịch tác vụ (trên Windows). Các tập lệnh này cũng có thể được sử dụng cho các tác vụ xử lý văn bản đơn giản.

Kiểm tra PHP là gì?

PHPUnit là khung thử nghiệm đơ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ỉ.

Làm cách nào tôi có thể kiểm tra mã PHP của mình trực tuyến?

Bạn có thể kiểm tra PHP MySQL bằng PDO và cũng có thể kiểm tra PHP Sodium (PHP 7. 4. 8 và chỉ PHP 8). Để thực thi mã của bạn, bạn phải sao chép và dán, kéo và thả tệp PHP hoặc nhập trực tiếp vào trình chỉnh sửa trực tuyến "Mã PHP" bên dưới và nhấp vào nút "Chạy". You can see the user guide to help you to use this php sandbox tool.