LARAVEL TUTORIALS
10 thủ thuật Lavavel giúp bạn code nhanh hơn! Routing trong Laravel, cách tạo Route và sử dung AZ Tạo Middleware trong Laravel đơn giản trong 5 phút Xử lý Authentication và Authorization trong Laravel Event và listener trong Laravel, cách tạo và quản lý cơ bản nhất Tạo broadcast event trong Laravel dễ dàng trong 10 phút Xử lý Form Validation trong Laravel từ A - Z Cách tạo Session và cookie trong Laravel dễ dàng như ăn cháo Top 10 Package Lavavel thường dùng trong dự án Laravel Sử dụng Task trong Laravel đơn giản trong 10 phút. Cách tạo API trong Laravel đơn giản chỉ trong 5 phút Cách tạo job trong Laravel sao cho hiệu quả? Queues trong Laravel, dùng để xử lý các tác vụ mất nhiều thời gian Cache trong Laravel, các loại Cache thường dùng trong Laravel Redis trong Laravel, biết cách sử dung Redis Laravel trong 5 phút Sử dụng Memcache trong Laravel tăng tốc độ truy cập website Unit Test trong Laravel, thực hành tạo testing Laravel A-Z 10 thủ thuật tối ưu quá trình Testing trong Laravel Top 7 thư viện Testing Laravel được dùng nhiều nhất Testbench và Orchestra Testbench trong Laravel, kiểm thử Laravel dễ dàng Cách dùng Browser Testing (Laravel Dusk) trong Laravel Cách tạo test case cho Controller trong Laravel Cách tạo test case cho Model trong Laravel Cách tạo Database Testing trong Laravel Real-time web applications là gì ? Tầm quan trọng trong Laravel Laravel WebSockets, các bước tạo WebSockets trong Laravel Cách dùng Socket.io trong Laravel để tạo ứng dụng realtime Dùng Server-Sent Events trong Laravel để làm ứng dụng realtime Cách dùng Long polling trong Laravel để cải thiện trải nghiệm Cách tích hợp Vue.js vào Laravel và làm một ứng dụng căn bản Task Scheduling là gì? Cấu hình Task Scheduling trong Laravel Cách dùng Queue trong laravel để tạo tác vụ bất đồng bộ Cách dùng Event Sourcing trong Laravel Cách sử dụng CQRS trong Laravel từ A đến Z đơn giản Sử dụng Service Container trong Laravel dễ dàng Cách xử lý đa ngôn ngữ trong Laravel dễ dàng Tìm hiểu và sử dụng Service Provider trong Laravel Facades là gì? Cách dùng Facades trong Laravel Cách sử dụng Email Verification trong Laravel Cách dùng URL Generation trong Larevel Cách sử dụng Error Handling trong Laravel Cách dùng Encryption và decryption trong Laravel Cách sử dụng Relationships trong Laravel Bài 01: Laravel là gì? Hướng dẫn cài đặt laravel trên windows Sử dụng Event trong Laravel Một cách quản lý filter trong Laravel
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

10 thủ thuật tối ưu quá trình Testing trong Laravel

Trong quá trình phát triển ứng dụng Laravel, testing đóng một vai trò quan trọng để đảm bảo tính ổn định và chất lượng của sản phẩm. Tuy nhiên, việc thực hiện testing một cách hiệu quả và nhanh chóng không phải là điều dễ dàng. Vì vậy, trong bài viết này, chúng ta sẽ tìm hiểu về 10 thủ thuật để tối ưu hóa quá trình testing trong Laravel, giúp bạn tiết kiệm thời gian và công sức trong quá trình phát triển sản phẩm.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Sử dụng Continuous Integration để tự động hóa quá trình testing

Continuous Integration (CI) là một phương pháp phát triển phần mềm, trong đó các thay đổi của mã nguồn được tự động kiểm thử và tích hợp với các phiên bản hiện tại của ứng dụng. Trong Laravel, bạn có thể sử dụng các công cụ CI để tự động kiểm thử ứng dụng của mình và đảm bảo rằng các thay đổi của mã nguồn không gây ra sự cố.

Để sử dụng CI trong Laravel, bạn cần các công cụ như Git và một dịch vụ CI như Travis CI hoặc CircleCI. Sau đây là một số bước cơ bản để tích hợp CI vào Laravel:

Tạo file .travis.yml hoặc .circleci/config.yml trong thư mục gốc của ứng dụng Laravel của bạn để cấu hình dịch vụ CI.

Bài viết này được đăng tại [free tuts .net]

Trong file cấu hình, bạn sẽ cần định nghĩa các bước cần thiết để chạy kiểm thử.

Ví dụ:

language: php

php:
  - 8.0

services:
  - mysql

before_script:
  - composer install --prefer-source --no-interaction
  - cp .env.example .env
  - php artisan key:generate
  - php artisan migrate --no-interaction -vvv

script:
  - vendor/bin/phpunit

Trong ví dụ trên, chúng ta đang cấu hình Travis CI để sử dụng PHP 8.0 và MySQL. Trước khi chạy kiểm thử, chúng ta cần cài đặt các gói phụ thuộc của Laravel thông qua Composer và tạo file .env. Sau đó, chúng ta chạy các câu lệnh artisan để tạo bảng trong cơ sở dữ liệu và sinh khóa bảo mật. Cuối cùng, chúng ta chạy PHPUnit để chạy các kiểm thử Laravel của chúng ta.

Khi bạn đã cấu hình file cấu hình CI, hãy đăng ký tài khoản với dịch vụ CI của bạn và liên kết kho lưu trữ GitHub hoặc GitLab của bạn với tài khoản CI của bạn. Bằng cách làm như vậy, CI sẽ tự động chạy các kiểm thử của bạn mỗi khi bạn đẩy các thay đổi mới vào kho lưu trữ.

Kiểm tra kết quả CI để đảm bảo rằng các kiểm thử của bạn đã chạy thành công và không có lỗi nào xảy ra. Nếu có lỗi, hãy sửa chúng và đẩy lại mã của bạn để CI chạy lại kiểm thử.

Tích hợp CI vào Laravel giúp bạn tự động hóa quá trình kiểm thử và giảm thiểu sự cố trong quá trình triển khai ứng dụng. Bằng cách tích hợp CI, bạn có thể đảm bảo rằng các thay đổi của mã nguồn không gây ra lỗi và không phá vỡ các tính năng hiện có của ứng dụng. Điều này giúp cho quá trình phát triển phần mềm trở nên nhanh chóng, hiệu quả và đảm bảo chất lượng.

Một số lợi ích của việc sử dụng CI trong Laravel:

  • Tự động kiểm tra mã nguồn: Điều này giúp bạn đảm bảo rằng các thay đổi của mã nguồn không gây ra lỗi và không phá vỡ các tính năng hiện có của ứng dụng.

  • Tiết kiệm thời gian: Với CI, bạn không cần phải chạy kiểm thử một cách thủ công mỗi khi bạn thay đổi mã nguồn. CI tự động kiểm thử ứng dụng của bạn và báo cáo lỗi (nếu có) trong vòng vài phút sau khi bạn đẩy các thay đổi.

  • Giảm thiểu các lỗi liên quan đến triển khai: Sử dụng CI giúp bạn đảm bảo rằng mã nguồn của bạn đã được kiểm tra kỹ trước khi triển khai vào môi trường sản xuất. Điều này giảm thiểu khả năng phát sinh lỗi khi triển khai ứng dụng của bạn.

  • Tăng tính linh hoạt và tiện lợi: Khi bạn sử dụng CI, bạn có thể chạy kiểm thử của mình trên nhiều môi trường khác nhau (ví dụ: trên máy chủ Linux, Windows, Mac OS X) và đảm bảo rằng ứng dụng của bạn hoạt động đúng trên tất cả các môi trường này.

2.Sử dụng Tinker để tạo dữ liệu mẫu

Tinker là một công cụ giúp chúng ta tương tác với ứng dụng Laravel thông qua một giao diện dòng lệnh. Tinker cho phép chúng ta thực thi các lệnh PHP và truy vấn cơ sở dữ liệu trực tiếp trên ứng dụng Laravel, giúp tiết kiệm thời gian khi tạo dữ liệu mẫu cho quá trình testing.

Các bước sử dụng Tinker để tạo dữ liệu mẫu trong Laravel bao gồm:

Khởi động Tinker

Để khởi động Tinker, chúng ta sử dụng lệnh trên terminal.

php artisan tinker 

Tạo dữ liệu mẫu

Chúng ta có thể tạo dữ liệu mẫu bằng cách sử dụng các lệnh PHP và truy vấn cơ sở dữ liệu trong Tinker.

Ví dụ:

// Tạo một user mới
$user = new App\Models\User;
$user->name = 'John Doe';
$user->email = 'johndoe@example.com';
$user->password = bcrypt('password');
$user->save();

// Tạo một bài viết mới của freetuts.net
$post = new App\Models\Post;
$post->title = 'New Post';
$post->body = 'This is a new post.';
$post->user_id = $user->id;
$post->save();

Kiểm tra dữ liệu: Chúng ta có thể kiểm tra dữ liệu bằng cách sử dụng các lệnh PHP và truy vấn cơ sở dữ liệu trong Tinker.

Ví dụ:

// Lấy danh sách user
$users = App\Models\User::all();
$users->toArray();

// Lấy danh sách bài viết
$posts = App\Models\Post::all();
$posts->toArray();

Tinker giúp chúng ta tạo dữ liệu mẫu nhanh chóng và tiện lợi trong quá trình testing. Ngoài ra, chúng ta cũng có thể sử dụng Tinker để debug và kiểm tra thông tin trong ứng dụng Laravel.

3. Sử dụng Faker để tạo dữ liệu giả

Faker là một thư viện được sử dụng để tạo dữ liệu giả lập (fake data) trong quá trình phát triển và testing ứng dụng. Thư viện này cung cấp các phương thức để tạo dữ liệu như tên, địa chỉ, số điện thoại, email, ngày tháng, số tiền, etc.

Để sử dụng Faker trong Laravel, trước tiên bạn cần cài đặt nó bằng Composer:

composer require fakerphp/faker

Sau khi cài đặt xong, bạn có thể sử dụng Faker bằng cách tạo một đối tượng mới của lớp Faker trong các test case của bạn

use Faker\Factory as Faker;

class ExampleTest extends TestCase
{
    public function testExample()
    {
        $faker = Faker::create();
        $name = $faker->name;
        $email = $faker->email;
        $phoneNumber = $faker->phoneNumber;
        // ...
    }
}

Ở đây, chúng ta đã tạo một đối tượng Faker và sử dụng nó để tạo ra các dữ liệu giả lập như tên, email và số điện thoại. Ngoài ra, Faker còn cung cấp nhiều phương thức khác để tạo ra các loại dữ liệu khác như địa chỉ, số tiền, ngày tháng, etc.

Sử dụng Faker để tạo dữ liệu giả lập là một cách hiệu quả để giảm thiểu thời gian và công sức cần thiết trong quá trình testing ứng dụng của bạn. Nó cũng giúp đảm bảo tính đáp ứng của ứng dụng trong nhiều trường hợp khác nhau.

4. Sử dụng PHPUnit để viết các test case

PHPUnit là một framework testing cho PHP, nó được sử dụng rộng rãi trong Laravel để viết các test case. PHPUnit cung cấp cho chúng ta một cách đơn giản để viết các test case và kiểm tra các kết quả của chúng. Để sử dụng PHPUnit trong Laravel, chúng ta có thể thực hiện các bước sau:

Cài đặt PHPUnit

PHPUnit là một dependency của Laravel, vì vậy chúng ta không cần phải cài đặt thêm. Tuy nhiên, để sử dụng phiên bản mới nhất của PHPUnit, chúng ta có thể cài đặt nó bằng Composer:

composer require --dev phpunit/phpunit

Viết các test case

Chúng ta có thể viết các test case bằng cách tạo các file test trong thư mục tests của Laravel.

Ví dụ:

<?php

namespace Tests\Unit;

use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;

class ExampleTest extends TestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function testBasicTest()
    {
        $response = $this->get('/');

        $response->assertStatus(200);
    }
}

Trong đó, chúng ta sử dụng phương thức get để gửi một HTTP request đến đường dẫn /, và phương thức assertStatus để kiểm tra rằng response trả về có status code là 200.

Chạy các test case

Để chạy các test case, chúng ta có thể sử dụng Artisan command test:

php artisan test

Hoặc chúng ta có thể chỉ định các file test cụ thể để chạy:

php artisan test tests/Unit/ExampleTest.php

5. Sử dụng Model Factories để tạo dữ liệu mẫu

Model Factories là một trong những công cụ hữu ích trong Laravel để tạo dữ liệu mẫu cho quá trình testing. Với Model Factories, chúng ta có thể định nghĩa các bản ghi mẫu cho các model trong ứng dụng và sử dụng chúng để tạo dữ liệu mẫu trong quá trình testing.

Các bước sử dụng Model Factories để tạo dữ liệu mẫu trong Laravel bao gồm:

Tạo Model Factory

Để tạo Model Factory cho một model trong ứng dụng Laravel, chúng ta sử dụng artisan command make:factory.

Ví dụ:

php artisan make:factory UserFactory --model=User

Command này sẽ tạo ra một file UserFactory.php trong thư mục database/factories của ứng dụng.

Định nghĩa các bản ghi mẫu

Trong file Model Factory, chúng ta định nghĩa các bản ghi mẫu cho model tương ứng bằng cách sử dụng hàm define.

Ví dụ:

use Illuminate\Support\Str;
use Faker\Generator as Faker;

$factory->define(App\Models\User::class, function (Faker $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'email_verified_at' => now(),
        'password' => bcrypt('password'), // password
        'remember_token' => Str::random(10),
    ];
});

Trong ví dụ trên, chúng ta định nghĩa một bản ghi mẫu cho model User với các thuộc tính name, email, password và remember_token được tạo ngẫu nhiên bởi Faker.

Sử dụng Model Factory trong quá trình testing: Để sử dụng Model Factory để tạo dữ liệu mẫu trong quá trình testing, chúng ta sử dụng hàm factory trong các unit test của ứng dụng.

Ví dụ:

use Illuminate\Foundation\Testing\WithFaker;
use Illuminate\Foundation\Testing\DatabaseTransactions;

class UserTest extends TestCase
{
    use DatabaseTransactions, WithFaker;

    public function test_create_user()
    {
        $user = factory(App\Models\User::class)->create();

        $this->assertDatabaseHas('users', [
            'email' => $user->email,
        ]);
    }
}

Trong ví dụ trên, chúng ta sử dụng Model Factory để tạo một user mới và kiểm tra xem user này đã được lưu vào cơ sở dữ liệu hay chưa.

6. Sử dụng Selenium để thực hiện testing trên trình duyệt

Selenium là một công cụ tự động hóa testing trên trình duyệt web. Nó cho phép chúng ta viết các kịch bản tự động để kiểm tra các chức năng của ứng dụng web trên các trình duyệt khác nhau. Trong Laravel, chúng ta có thể sử dụng Selenium để thực hiện testing trên trình duyệt như sau:

Cài đặt Selenium

Chúng ta cần cài đặt Selenium Server và WebDriver để Selenium có thể tương tác với các trình duyệt. Để cài đặt Selenium Server, chúng ta có thể tải xuống từ trang chủ của Selenium. Để cài đặt WebDriver, chúng ta có thể sử dụng Composer:

composer require --dev facebook/webdriver

Viết các kịch bản test

Chúng ta có thể viết các kịch bản test bằng cách sử dụng WebDriver để tương tác với các trang web.

Ví dụ:

<?php

use Facebook\WebDriver\Remote\DesiredCapabilities;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\WebDriverBy;

class ExampleTest extends PHPUnit_Framework_TestCase
{
    protected $driver;

    public function setUp()
    {
        $capabilities = DesiredCapabilities::chrome();
        $this->driver = RemoteWebDriver::create('http://localhost:4444/wd/hub', $capabilities);
    }

    public function tearDown()
    {
        $this->driver->quit();
    }

    public function testTitle()
    {
        $this->driver->get('https://example.com');
        $this->assertEquals('Example Domain', $this->driver->getTitle());
    }

    public function testForm()
    {
        $this->driver->get('https://example.com');
        $this->driver->findElement(WebDriverBy::name('q'))->sendKeys('Selenium');
        $this->driver->findElement(WebDriverBy::name('btnK'))->click();
        $this->assertEquals('Selenium - Google Search', $this->driver->getTitle());
    }
}

Trong đó, chúng ta sử dụng WebDriver để khởi tạo trình duyệt và tương tác với các trang web. Các phương thức như get, findElement click được sử dụng để tìm kiếm các phần tử trên trang và tương tác với chúng.

Chạy các kịch bản test

Để chạy các kịch bản test, chúng ta có thể sử dụng PHPUnit bằng cách chạy lệnh:

./vendor/bin/phpunit

7.Sử dụng Laravel Dusk để thực hiện testing trên ứng dụng web

Laravel Dusk là một công cụ testing tự động được tích hợp sẵn trong Laravel, cho phép chúng ta thực hiện testing trên ứng dụng web với các trình duyệt như Chrome và Firefox. Để sử dụng Laravel Dusk, chúng ta có thể thực hiện các bước sau:

Cài đặt Laravel Dusk

Laravel Dusk được cài đặt sẵn trong Laravel, vì vậy chúng ta không cần phải cài đặt thêm. Tuy nhiên, để sử dụng được Laravel Dusk, chúng ta cần cài đặt một số phụ thuộc bổ sung bằng Composer:

composer require --dev laravel/dusk
php artisan dusk:install

Viết các test case

Chúng ta có thể viết các test case bằng cách tạo các file test trong thư mục tests/Browser của Laravel.

Ví dụ:

<?php

namespace Tests\Browser;

use Tests\DuskTestCase;
use Laravel\Dusk\Browser;
use Illuminate\Foundation\Testing\DatabaseMigrations;

class ExampleTest extends DuskTestCase
{
    /**
     * A basic browser test example.
     *
     * @return void
     */
    public function testBasicExample()
    {
        $this->browse(function (Browser $browser) {
            $browser->visit('/')
                    ->assertSee('freetuts.net');
        });
    }
}

Trong đó, chúng ta sử dụng phương thức visit để truy cập đến trang chủ của ứng dụng, và phương thức assertSee để kiểm tra rằng trang đó có chứa chuỗi "freetuts.net".

Chạy các test case

Để chạy các test case, chúng ta có thể sử dụng Artisan command dusk:

php artisan dusk

Laravel Dusk sẽ mở một trình duyệt và thực hiện các hành động và kiểm tra được định nghĩa trong các test case. Sau khi kết thúc, Laravel Dusk sẽ cung cấp cho chúng ta kết quả của các test case, cùng với các thông tin chi tiết về các hành động được thực hiện trong quá trình testing.

8. Sử dụng Mock Objects để thay thế các phụ thuộc

Trong Laravel, bạn có thể sử dụng Mockery, một thư viện Mocking nổi tiếng trong PHP, để tạo ra các đối tượng giả lập. Để sử dụng Mockery, bạn cần cài đặt nó thông qua Composer:

composer require --dev mockery/mockery

Sau đó, bạn có thể sử dụng Mockery để tạo ra các đối tượng giả lập trong kiểm thử Laravel của mình. Ví dụ, nếu bạn muốn tạo ra một đối tượng giả lập cho một lớp Eloquent model trong Laravel, bạn có thể sử dụng đoạn mã sau:

use App\Models\User;
use Mockery;

// Create a mock instance of the User model
$userMock = Mockery::mock(User::class);

Sau đó, bạn có thể định nghĩa các phương thức giả lập cho đối tượng này, ví dụ:

// Define the behavior of the mock object
$userMock->shouldReceive('find')
         ->once()
         ->with(1)
         ->andReturn(new User(['id' => 1, 'name' => 'freetuts.net']));

Trong ví dụ trên, chúng ta đang giả lập phương thức find() của lớp User model. Phương thức này sẽ được gọi một lần với tham số là 1, và sẽ trả về một đối tượng User với id là 1 và tên là "freetuts.net".

Khi bạn muốn sử dụng đối tượng giả lập này trong kiểm thử của mình, bạn có thể truyền nó vào các phương thức hoặc constructor của lớp cần kiểm thử:

use App\Services\UserService;

class UserServiceTest extends TestCase
{
    public function testGetUserById()
    {
        // Create a mock instance of the User model
        $userMock = Mockery::mock(User::class);
        $userMock->shouldReceive('find')
                 ->once()
                 ->with(1)
                 ->andReturn(new User(['id' => 1, 'name' => 'John Doe']));

        // Create an instance of the UserService class with the mock object
        $userService = new UserService($userMock);

        // Call the method being tested
        $result = $userService->getUserById(1);

        // Assert that the method returns the expected result
        $this->assertEquals('John Doe', $result->name);
    }
}

Trong ví dụ trên, chúng ta đang kiểm thử phương thức getUserById() của lớp UserService.

Chúng ta đã tạo ra một đối tượng giả lập cho lớp User model, và truyền nó vào constructor của lớp UserService để sử dụng trong phương thức kiểm thử. Sau đó, chúng ta gọi phương thức getUserById() và kiểm tra kết quả trả về.

9. Sử dụng Code Coverage để đo đạc độ bao phủ của test case

Code Coverage là một công cụ quan trọng để đo đạc độ bao phủ của test case trong Laravel. Độ bao phủ là tỷ lệ giữa số lượng code được thực thi trong quá trình testing và tổng số lượng code của ứng dụng. Độ bao phủ càng cao thì độ tin cậy của test case càng cao.

Để sử dụng Code Coverage trong Laravel, chúng ta có thể sử dụng PHPUnit và Xdebug. Các bước sử dụng Code Coverage trong Laravel như sau:

Cài đặt Xdebug-

Để sử dụng Code Coverage, chúng ta cần cài đặt Xdebug trên máy tính. Xdebug là một extension của PHP để debugging và profiling ứng dụng.

Cấu hình Xdebug

Để sử dụng Xdebug trong Laravel, chúng ta cần cấu hình Xdebug trong file php.ini của PHP.

[Xdebug]
zend_extension=xdebug.so
xdebug.mode=coverage
xdebug.coverage_enable=On
xdebug.coverage_output_dir=/path/to/coverage/folder

Trong đó, xdebug.mode=coverage cho biết Xdebug sẽ được sử dụng để đo đạc độ bao phủ của code. xdebug.coverage_enable=On cho biết Xdebug sẽ được kích hoạt để đo đạc độ bao phủ. xdebug.coverage_output_dir cho biết đường dẫn đến thư mục chứa kết quả đo đạc độ bao phủ.

Chạy PHPUnit với Code Coverage

Để chạy PHPUnit với Code Coverage, chúng ta sử dụng option --coverage-html để chỉ định thư mục chứa kết quả đo đạc độ bao phủ.

php artisan test --coverage-html /path/to/coverage/folder

Xem kết quả đo đạc độ bao phủ: Sau khi chạy PHPUnit với Code Coverage, chúng ta có thể mở file index.html trong thư mục kết quả để xem độ bao phủ của code.

Code Coverage giúp chúng ta đo đạc độ bao phủ của test case và tìm ra những vùng code chưa được thực thi trong quá trình testing. Chúng ta có thể sử dụng kết quả đo đạc độ bao phủ để cải thiện test case và đảm bảo độ tin cậy của ứng dụng.

10. Sử dụng PHP-CS-Fixer để kiểm tra và sửa lỗi cú pháp

PHP-CS-Fixer là một công cụ để kiểm tra và sửa lỗi cú pháp trong code PHP, bao gồm cả Laravel. Nó có thể giúp bạn đảm bảo rằng mã nguồn của bạn tuân thủ các quy ước lập trình và đúng cú pháp.

Để sử dụng PHP-CS-Fixer trong Laravel, chúng ta có thể làm như sau:

Cài đặt PHP-CS-Fixer

Chúng ta có thể cài đặt PHP-CS-Fixer thông qua Composer bằng cách chạy lệnh sau:

composer require --dev friendsofphp/php-cs-fixer

Tạo file cấu hình

Chúng ta cần tạo một file cấu hình để định nghĩa các quy ước lập trình và cách sửa lỗi cú pháp.

Ví dụ:

<?php

$finder = Symfony\Component\Finder\Finder::create()
    ->in(__DIR__)
    ->exclude('vendor')
    ->name('*.php')
    ->notName('*.blade.php')
    ->ignoreDotFiles(true)
    ->ignoreVCS(true);

$config = new PhpCsFixer\Config();

return $config->setRules([
    '@PSR2' => true,
    'array_syntax' => ['syntax' => 'short'],
    'no_unused_imports' => true,
    'no_unused_imports' => true,
    'trailing_comma_in_multiline' => true,
    'phpdoc_order' => true,
    'blank_line_before_statement' => [
        'statements' => ['return'],
    ],
])->setFinder($finder);

Trong đó, chúng ta định nghĩa một Finder để tìm kiếm các file PHP trong thư mục hiện tại và không bao gồm các file trong thư mục vendor hoặc có đuôi .blade.php. Chúng ta cũng định nghĩa các quy ước lập trình và cách sửa lỗi cú pháp.

Chạy PHP-CS-Fixer

Để chạy PHP-CS-Fixer, chúng ta sử dụng lệnh sau:

php-cs-fixer fix

Nếu có lỗi cú pháp, PHP-CS-Fixer sẽ cố gắng sửa chúng và hiển thị thông báo lỗi cho bạn. Nếu không có lỗi cú pháp, không có gì được hiển thị.

PHP-CS-Fixer là một công cụ hữu ích để đảm bảo rằng code của bạn tuân thủ các quy ước lập trình và đúng cú pháp. Chúng ta có thể tích hợp nó vào quy trình CI/CD của mình để đảm bảo rằng code của chúng ta luôn đúng cú pháp và dễ đọc.

Kết bài viết

Trong bài viết này, chúng ta đã tìm hiểu về 10 thủ thuật tối ưu quá trình testing trong Laravel. Việc kiểm tra chất lượng sản phẩm phát triển rất quan trọng và đòi hỏi nhiều thời gian và công sức. Tuy nhiên, các thủ thuật này sẽ giúp bạn tiết kiệm thời gian và tăng hiệu quả kiểm tra.

Từ việc sử dụng các bộ kiểm tra tích hợp sẵn của Laravel, cho đến việc sử dụng Laravel Telescope để theo dõi các hoạt động của ứng dụng, và tối ưu hóa các bộ kiểm tra với Mockery, tất cả đều giúp cho quá trình testing trở nên dễ dàng và hiệu quả hơn.

Tuy nhiên, cần lưu ý rằng những thủ thuật này chỉ là một phần nhỏ của quá trình testing và không thể thay thế hoàn toàn cho việc viết các bộ kiểm tra và thực hiện các kiểm tra thủ công. Tuy nhiên, với việc áp dụng các thủ thuật này, bạn sẽ tiết kiệm được thời gian và công sức, và giảm thiểu các sai sót trong quá trình testing của mình.

Cùng chuyên mục:

Cách sử dụng Relationships trong Laravel

Cách sử dụng Relationships trong Laravel

Cách dùng Encryption và decryption trong Laravel

Cách dùng Encryption và decryption trong Laravel

Cách sử dụng Error Handling trong Laravel

Cách sử dụng Error Handling trong Laravel

Cách dùng URL Generation trong Larevel

Cách dùng URL Generation trong Larevel

Cách sử dụng Email Verification trong Laravel

Cách sử dụng Email Verification trong Laravel

Facades là gì? Cách dùng Facades trong Laravel

Facades là gì? Cách dùng Facades trong Laravel

Tìm hiểu và sử dụng Service Provider trong Laravel

Tìm hiểu và sử dụng Service Provider trong Laravel

Sử dụng Service Container trong Laravel dễ dàng

Sử dụng Service Container trong Laravel dễ dàng

Cách xử lý đa ngôn ngữ trong Laravel dễ dàng

Cách xử lý đa ngôn ngữ trong Laravel dễ dàng

Cách sử dụng CQRS trong Laravel từ A đến Z đơn giản

Cách sử dụng CQRS trong Laravel từ A đến Z đơn giản

Cách dùng Event Sourcing trong Laravel

Cách dùng Event Sourcing trong Laravel

Task Scheduling là gì? Cấu hình Task Scheduling trong Laravel

Task Scheduling là gì? Cấu hình Task Scheduling trong Laravel

Cách dùng Queue trong laravel để tạo tác vụ bất đồng bộ

Cách dùng Queue trong laravel để tạo tác vụ bất đồng bộ

Cách tích hợp Vue.js vào Laravel và làm một ứng dụng căn bản

Cách tích hợp Vue.js vào Laravel và làm một ứng dụng căn bản

Cách dùng Long polling trong Laravel để cải thiện trải nghiệm

Cách dùng Long polling trong Laravel để cải thiện trải nghiệm

Dùng Server-Sent Events trong Laravel để làm ứng dụng realtime

Dùng Server-Sent Events trong Laravel để làm ứng dụng realtime

Cách dùng Socket.io trong Laravel để tạo ứng dụng realtime

Cách dùng Socket.io trong Laravel để tạo ứng dụng realtime

Laravel WebSockets, các bước tạo WebSockets trong Laravel

Laravel WebSockets, các bước tạo WebSockets trong Laravel

Real-time web applications là gì ? Tầm quan trọng  trong Laravel

Real-time web applications là gì ? Tầm quan trọng trong Laravel

Cách tạo Database Testing trong Laravel

Cách tạo Database Testing trong Laravel

Top