Unittest Laravel – Kho lưu trữ thử nghiệm

Tram Ho

Hello anh em. Ở bài này mình tiếp tục chia sẻ một số kiến thức về viết test cho project laravel. Mình sẽ hướng dẫn cách viết test 1 repository trong laravel.

1. Chuẩn bị

Để có thể test repository thì trước hết mình cần có repository để test, ở đây mình sẽ tạo userRepository và sau đó viết test cho nó.

  1. Trước hết mình sẽ tạo baseRepository như sau

  1. Tiếp theo mình sẽ tạo userRepository và viết lại function store để thêm dữ liệu thay vì dùng create

Trên đây là việc tạo repository nếu các bạn chưa có kiến thức về repository trong laravel thì có thể tìm hiểu tại đây

2. Viết test cho UserRepository

Chúng ta sẽ tạo 1 file UserRepositoryTest để viết test
Chạy lệnh để tạo unittest:

php artisan make:test Repositories/UserRepositoryTest --unit
lệnh trên sẽ sinh ra một thư mục với đường dẫn là test/Unit/Repositories/UserRepositoryTest.php
file ban đầu sẽ như này:

Tiếp theo viết function testStore để test function store của UserRepository

Vì mình dùng model User,UseRepository,uploaderFile nên mình sẽ use nó vào

Trên có hai hàm là testGetModel để test get model và testStore để test store của UserRepository

Trong function testStore ta sẽ tạo dữ liệu và gọi hàm store của userRepository để thêm dữ liệu
$result = $userRepository->store($request);

Sau đó ta kiểm tra xem dữ liệu đã được thêm hay chưa
$this->assertEquals(1, User::all()->count());
câu lệnh trên sẽ trả về true nếu thêm dữ liệu thành công

vậy là xong . sau đó chúng ta chạy lệnh để test:

vendor/bin/phpunit
Các bạn làm tương tự với các chức năng show, update, destroy nhé.

Tổng kết

Trên đây là những kiến thức cơ bản về test Repository laravel, có góp ý gì vui lòng comment vào vài viết nhé. Thanks

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo