Hàm giả lập phpunit

Chuỗi bài viết chuyên sâu về PHPUnit hy vọng mang đến cho không chỉ các PHP Developer mới mà cả những người đã có nhiều năm kinh nghiệm cái nhìn thân thiện và tổng quan hơn với PHPUnit, đồng thời, giúp các Quản lý lý dự án có những dự án này

Bài viết sẽ giới thiệu những khái niệm cốt lõi của testing, cho bạn biết tại sao “dependency injection is king” và sự khác biệt giữa mock và stub là gì?

I. PHPUnit là gì?

PHPUnit là một khung kiểm tra đơn vị  [khung kiểm thử đơn vị] cho ngôn ngữ PHP. Nó cung cấp cho người dùng rất nhiều lớp – phương thức giúp cho việc viết các đoạn mã kiểm tra trở nên nhanh chóng và thuận lợi. Từ đó, chúng ta có thể tiết kiệm được nhiều thời gian thử nghiệm

II. Chuẩn bị

Để có môi trường phát triển, bạn nên sử dụng máy ảo [Ví dụ như Docker] để khởi động môi trường máy chủ, thay vì sử dụng ngay trên hệ điều hành của hiện tại và sử dụng CMD để chạy các lệnh. Nếu bạn đã quen với việc làm mọi thứ trên giao diện GUI, thì đây là lúc bạn nghĩ đến việc sử dụng CMD rồi đấy.

 

III. Sử dụng PHPUnit

1. Cài đặt PHPUnit

Cách đơn giản nhất là sử dụng trình soạn nhạc, khi đó, bạn nên lưu ý đến PSR-4 Autoloading.

Để cài đặt PHPUnit, chúng ta chỉ cần một dòng trong trình soạn thảo tệp. json

{

    "require": {

        "php": "^7.2.5"

    },

    "require-dev": {

        "phpunit/phpunit": "^8.5"

    }

}

Bạn nên sử dụng XDebug – một trình gỡ lỗi giúp bạn không thành “người tối cổ” khi vẫn sử dụng echo, print_r, var_dump, và cũng là công cụ tuyệt vời khi làm việc với PHPUnit

Để nhà soạn nhạc tải xuống thư viện mới, bạn chỉ cần chạy lệnh

________số 8

2. Chạy PHPUnit

You only to enter. ./vendor/bin/phpunit sẽ ra tệp mà bạn chủ yếu tương tác, còn việc tải các tệp để kiểm tra thì composer tự tìm và tải rồi

Khi chạy PHPUnit ./vendor/bin/phpunit sẽ cho bạn biết tất cả các tùy chọn có sẵn của bạn

 

3. Constructor of project

Vì sử dụng trình soạn thảo nên sẽ mất một khoảng thời gian để thiết lập dự án và thực hiện mọi thứ hoạt động với trình tải tự động. Đặt không gian tên có mã nguồn của mình là     "require": {1 và không gian tên cho mã nguồn của PHPUnit là     "require": {2

Cập nhật tập tin     "require": {3

{

    "require": {

        "php": "^7.2.5"

    },

    "require-dev": {

        "phpunit/phpunit": "^8.5"

    },

        "php": "^7.2.5"1

        "php": "^7.2.5"2

        "php": "^7.2.5"3

        "php": "^7.2.5"4

    },

        "php": "^7.2.5"6

        "php": "^7.2.5"2

        "php": "^7.2.5"8

        "php": "^7.2.5"4

    }

}

Sau đó, chúng ta chạy lệnh để cập nhật trình soạn nhạc bằng lệnh     },2. Toàn bộ mã nguồn dự án sẽ nằm trong thư mục ứng dụng, mã nguồn kiểm tra nằm trong thư mục kiểm tra, cùng cấp với nhà cung cấp thư mục

    },3

    "require": {3

    },5

    },6

 

4. Thiết lập phpunit. xml

Khi chạy PHPUnit, nó sẽ chạy với cấu hình mặc định. You can write over the default value information through the command line. Nhưng tốt hơn cả là cấu hình thông qua file phpunit. xml

Trong thư mục gốc của project ta tạo một file phpunit. xml as after

    },7

    },8

    },9

    "require-dev": {0

    "require-dev": {1

    "require-dev": {2

    "require-dev": {3

    "require-dev": {4

    "require-dev": {5

    "require-dev": {6

    "require-dev": {7

    "require-dev": {8

    "require-dev": {9

Đây là tệp cấu hình đơn giản nhưng cực kỳ quan trọng

  •         "phpunit/phpunit": "^8.5"0. đảm bảo kết quả kiểm tra có màu sắc
  •         "phpunit/phpunit": "^8.5"1. Kiểm tra mã nguồn của bạn đã được đặt ở đâu và khi chạy nó chỉ chạy các tệp có kết thúc bằng Kiểm tra. php
  •         "phpunit/phpunit": "^8.5"2. Nơi chứa mã nguồn cần kiểm tra và chỉ kiểm tra tập tin có kết thúc bằng. php

Tất cả các bài kiểm tra đơn vị của bạn phải đặt trong thư mục         "phpunit/phpunit": "^8.5"3

 

5. quy ước

Công ước giúp làm việc theo nhóm, hoặc duy trì,… dễ dàng hơn

Cấu trúc tệp và tên tệp

Qui ước đầu tiên của chúng ta là về tệp cấu trúc và tệp tên.
Tên của tệp kiểm tra phải trùng với tên của mã nguồn tệp được kiểm tra và có Kiểm tra được gắn thêm vào.

Ví dụ.
Nếu ta có mã nguồn của các tập tin sau.

ứng dụng/Foo. php

ứng dụng/Thanh. php

Thì ta có các tệp mã nguồn kiểm tra như sau

kiểm tra/FooTest. php

kiểm tra/BarTest. php

tên lớp

Tên lớp phải giống tên tệp. Điều này áp dụng cho tất cả các tập tin. php in app directory, and tests

Tên phương thức

Kiểm tra tên phương thức bắt đầu bằng kiểm tra. Tên phương thức nên mô tả về những gì đang được kiểm tra, bao gồm tên của phương thức đã được kiểm tra và không được viết tắt

Ví dụ. nếu bạn đang kiểm tra một phương thức được gọi là         "phpunit/phpunit": "^8.5"4 và trong một cuộc kiểm tra đơn vị, bạn muốn kiểm tra xem mật khẩu có khớp hay không, bạn sẽ đặt tên cho phương thức kiểm tra của mình         "phpunit/phpunit": "^8.5"5

Kiểm tra độ dài của tên phương thức kiểm tra ở đây là một lợi thế. Bởi vì có nhiều lần kiểm tra không thành công, ta sẽ dễ dàng biết chính xác những gì thất bại nhờ vào tên phương thức, từ đó có thể nhanh chóng tiến hành sửa lỗi

Phương thức kiểm tra phải công khai

PHPUnit không thể chạy các phương thức bảo vệ hoặc riêng tư nên chúng phải ở chế độ công khai. Tất cả các phương thức trợ giúp cũng phải công khai. Chúng ta không xây dựng public API mà chỉ muốn viết unit test nên không cần lắng nghe về khả năng truy cập của nó

Kế thừa PHPUnit

Kiểm tra tất cả các lớp phải mở rộng lớp \PHPUnit\Framework\TestCase hoặc một lớp có mở rộng \PHPUnit\Framework\TestCase

 

IV. Run try

Lần kiểm tra đầu tiên của chúng tôi sẽ rút ngắn và có thể là “ngớ nghĩ”, nhưng nó sẽ ở mức tối thiểu cần thiết cho một cuộc kiểm tra

Create new a file.         "phpunit/phpunit": "^8.5"6

        "phpunit/phpunit": "^8.5"7

        "phpunit/phpunit": "^8.5"8

        "phpunit/phpunit": "^8.5"9

    }0

{

    }2

}

Nội dung này không có gì đặc biệt, cho thấy ta đã tuân thủ theo 3 quy tắc bên trên.
Tiếp tục theo ta sẽ thực hiện kiểm tra với khẳng định là đúng. Hãy tạo một phương thức     }4

        "phpunit/phpunit": "^8.5"7

    }6

 

    }7

    }8

    }9

    }

Sau đây là mã kiểm tra của nó

        "phpunit/phpunit": "^8.5"7

    }6

    }7

    }8

}5

}6

    }

Từ thư mục gốc project ta run command. }8

Bạn sẽ nhìn thấy thanh màu xanh [lá] hy vọng

You are running a test and verify the only one assertion

 

V. Kết luận

Thì ra là ta đã hoàn tất cài đặt PHPUnit bằng trình soạn thảo, thiết lập cấu hình cho PHPUnit, và chạy một lần kiểm tra đầu tiên.
Có vẻ như bạn sẽ thấy những bước đầu tiên này chưa phản lại tác dụng cụ thể nào, nhưng nó củng cố ý tưởng rằng. unit test không phải là một khái niệm cao siêu, huyền bí, chỉ giáo sư mới hiểu được. Thực hiện nó chỉ là một đoạn mã do chúng ta tạo nên. Và đoạn mã ấy cho chúng ta biết mình đã sai ở chỗ nào.

Phần tiếp theo ta sẽ tìm hiểu sâu hơn về các khẳng định và dataProvider. Hẹn gặp lại các bạn ở các bài viết sau

Chủ Đề