aedart/testing-laravel

此包已被废弃,不再维护。作者建议使用 aedart/athenaeum 包代替。

这是一组工具,允许您测试依赖 Laravel 的包。在核心上,这个包是 Orchestral Testbench 的包装器。然而,您可以使用您喜欢的任何测试框架;它不会强制您使用 Orchestral 或 Laravel 的 TestCase 类。

4.1.0 2018-09-29 07:03 UTC

This package is auto-updated.

Last update: 2022-02-01 12:46:15 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

已弃用 - Testing-Laravel

此包已被 aedart/athenaeum 替代

这是一组工具,允许您测试依赖 Laravel 的包。在核心上,这个包是 Orchestral Testbench 的包装器。然而,您可以使用您喜欢的任何测试框架;它不会强制您使用 Orchestral 或 Laravel 的 TestCase 类。

内容

何时使用此包

当您希望测试 Laravel 特定组件和包时

如何安装

对于 Orchestral Testbench 版本 3.6.x / Laravel 5.6.x

composer require aedart/testing-laravel 4.*

对于 Orchestral Testbench 版本 3.5.x / Laravel 5.5.x

composer require aedart/testing-laravel 3.*

注意:此包需要 php 版本 7.1 或更高

对于 Orchestral Testbench 版本 3.4.x / Laravel 5.4.x

composer require aedart/testing-laravel 2.*

对于 Orchestral Testbench 版本 3.3.x / Laravel 5.3.x

composer require aedart/testing-laravel 1.8.*

对于 Orchestral Testbench 版本 3.2.x / Laravel 5.2.x

composer require aedart/testing-laravel 1.7.*

对于 Laravel 5.1 和之前的版本

不支持

此包使用 composer。如果您不知道它是做什么的或它的工作原理,我建议在尝试使用此包之前先了解一些相关信息。

快速开始

假设 / 前提条件

您有一些使用Laravel的经验

您正在使用某种PHP单元测试框架,例如PHPUnitCodeception

辅助工具

在以下示例中,使用了一个Codeception的单元测试(继承自PHP Unit)

<?php
use Aedart\Testing\Laravel\Traits\TestHelperTrait;

class MyUnitTest extends \Codeception\TestCase\Test
{
    use TestHelperTrait;

    /**
     * @var \UnitTester
     */
    protected $tester;

    protected function _before(){
        // Start the Laravel application
        $this->startApplication();
    }

    protected function _after(){
        // Stop the Laravel application
        $this->stopApplication();
    }
    
    /**
     * @test
     */
    public function readSomethingFromConfig(){
        // Calling config, using Laravel defined helper method
        $defaultDbDriver = config('database.default');

        $this->assertSame('mysql', $defaultDbDriver);
    }

    /**
     * @test
     */
    public function readSomethingElseFromConfig(){
        // Get the application instance
        $app = $this->getApplication();
        
        $queueDriver = $app['config']['queue.default'];
        
        $this->assertSame('sync', $queueDriver);
    }
    
    // ... Remaining not shown ... //
}

贡献

您是否发现了缺陷(错误或设计缺陷),或者希望进行改进?在以下章节中,您可能会找到一些有用的信息,说明您如何帮助这个项目。无论如何,我都感谢您抽出时间帮助我改进这个项目的成果和整体质量。

错误报告

如果您确信您发现了错误,那么至少您应该创建一个新的问题。在给定的问题中,您至少应该描述以下内容;

  • 缺陷位于何处
  • 对缺陷的简短、精确描述(为什么它是缺陷)
  • 如何复制缺陷
  • 解决缺陷的可能方案

当我有时间时,我会审查您的问题并采取行动。

分支代码并发送拉取请求

一份良好且写得好的错误报告能帮我很多。不过,如果您能够或愿意自己解决缺陷,这里是如何做到的;

  • 分支这个项目
  • 为给定的缺陷修复创建一个新的本地开发分支
  • 编写您的代码/更改
  • 创建可执行的测试用例(证明您的更改是稳固的!)
  • 提交并将您的更改推送到您的分支存储库
  • 发送包含您更改的拉取请求
  • 喝一杯啤酒 - 您应得的 :)

当我收到拉取请求时(并且有时间处理),我会审查您的更改并将其合并到这个项目中。如果没有,我会通知您为什么我选择不这样做。

致谢

Mior Muhammad Zaki 为提供了一种良好的测试Laravel特定组件和包的替代方法。

Taylor Otwell 等人 为创造了最好的PHP框架之一。

版本控制

此包遵循语义版本控制2.0.0

许可证

BSD-3-Clause,请阅读此包中包含的LICENSE文件