定制 morrislaptop/laravel-boot-maker 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

morrislaptop/laravel-boot-maker

最新稳定版本:v0.4.0

Composer 安装命令:

composer require morrislaptop/laravel-boot-maker

包简介

Partially boot Laravel for your lightning fast tests

README 文档

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Laravel Boot Maker

When you extend TestCase, you're booting the whole framework for each test in your suite. It's likely that you're not using all the features for each test, slowing down your test suite considerably.

This package allows you to "opt in" to boot just the Laravel features you need for your test to pass. Your test will run much quicker as a result.

Installation

You can install the package via composer:

composer require morrislaptop/laravel-boot-maker --dev

Create the following trait in tests/CreatesPartialApplication.php

<?php

namespace Tests;

trait CreatesPartialApplication
{
    /**
     * Creates the application.
     *
     * @return \Illuminate\Foundation\Application
     */
    public function createApplication()
    {
        $app = require __DIR__.'/../bootstrap/app.php';

        return $app;
    }
}

Create a base partial test class which uses this trait at tests/PartialTestCase.php

<?php

namespace Tests;

use Morrislaptop\LaravelBootMaker\PartialTestCase as BasePartialTestCase;

abstract class PartialTestCase extends BasePartialTestCase
{
    use CreatesPartialApplication;
}

Usage

It's recommended to get the tests passing using the full TestCase first, and then drop down to PartialTestCase and select only the Laravel features you need.

This approach ensures you're only using the Laravel features you think are using, which might be useful if trying to decouple from the framework bit.

<?php

namespace Tests\Feature;

use App\Events\QuestionCreated;
use App\Listeners\AskQuestion;
use Illuminate\Support\Facades\Event;
use Morrislaptop\LaravelBootMaker\Concerns\Events;
use Tests\PartialTestCase;

class QuestionCreatedTest extends PartialTestCase
{
    use Events;

    /**
     * A basic feature test example.
     *
     * @return void
     */
    public function test_example()
    {
        Event::fake();
        Event::assertListening(QuestionCreated::class, AskQuestion::class);
    }
}

For a full list of features to enable, see src/Concerns;

You can easily create your own Concerns by including it in a TestCase and ensuring it has the setUpXXXX and tearDownXXXX methods.

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

Inspired by @ekvedaras at @gosuperscript

License

The MIT License (MIT). Please see License File for more information.

Todo

  • Installer to create CreatesPartialApplication and PartialTestCase
  • Listener to determine what Laravel features are used

统计信息

  • 总下载量: 549.97k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 2
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-08-05