Kiểm tra đơn vị Laravel – Kiểm tra tạo người dùng – Kiểm tra yêu cầu xác thực

Tram Ho

Viết chức năng create user

Để có thể viết unit test thì trước hết mình cần cái để test, ở đây mình cần chức năng create user.

UserController

Ở UserController mình viết function store nhận request và sử dụng UserCreateRequest để validate dữ liệu, dùng userRepository để trèn dữ liệu vào database. function store thành công sẽ trả về messageSuccess

UserCreateRequest

UserCreateRequest có nhiệm vụ validate dữ liệu đầu vào
tham khảo thêm tại đây

Trong này ta sẽ thiết lập các rule mà messages tương ứng

UserRepository

UserRepository đảm nhiệm việc sử lý dữ liệu và lưu vào DB.
vậy là đã xong phần create user, giờ bắt tay vào viết test nhé.

Viết unit test create user

cấu trúc thư mục test sẽ như thế này

Chúng ta sẽ tạo thêm file UserControllerTest.php trong feature bằng lệnh

Giờ thì viết test cho từng trường hợp thôi.

  1. Test trường hợp update thành công

  1. Test trường hợp update false khi admin chứa đăng nhập

do admin chưa đăng nhập nên response trả về lỗi 302 và redirect về login.
ở trên phần 1 mình có dùng $this->actingAs($admin); để đăng nhập

  1. Test trường hợp dữ liệu update false vì có trường name là rỗng

  1. Test trường hợp dữ liệu update false vì có trường name quá ngắn

  1. Test avatar không đúng định dạng

Tương tự test email hay password cũng vậy

Kết bài

Trên đấy là nhưng thứ mình biết về unittest, rất mong nhận được sự góp ý từ mọi người.

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo