sofa/laravel-kahlan

Kahlan 测试套件,用于测试 Laravel 应用程序

v5.6 2021-04-06 02:36 UTC

This package is auto-updated.

Last update: 2024-09-06 10:18:39 UTC


README

Kahlan 测试套件,为 Laravel 应用程序测试提供直观的 kahlan(基于 jasmine)描述性语法,以及 Laravel 功能测试功能。

https://github.com/jarektkaczyk/kahlan-driven-laravel 上查看使用示例

我应该使用此包吗?它是如何工作的?

查看 示例 spec

首次使用分 3 步

  1. 添加到您的项目中

    composer require --dev sofa/laravel-kahlan:"~5.4"
    
  2. 将此行添加到 kahlan 配置文件中(如果需要则创建它)

    /*  /path/to/your/app/kahlan-config.php  */
    <?php
    
    Sofa\LaravelKahlan\Env::bootstrap($this);
  3. /spec 文件夹中创建您的第一个 spec,例如 /spec/AppSpec.php,然后使用 vendor/bin/kahlan 运行测试套件。工作示例可以在 https://github.com/jarektkaczyk/kahlan-driven-laravel 上找到

    /*  /path/to/your/app/spec/AppSpec.php  */
    <?php
    
    describe('My awesome Kahlan driven Laravel app', function () {
        it("provides the same testing API as Laravel's own TestCase", function () {
            $this->laravel->get('/')
                          ->assertSee('Laravel 5')
                          ->assertStatus(200);
        });
    }

可选内容

  • 如果您需要自定义测试套件中的 .env 变量,您有 2 种选择

    • .env.kahlan 文件中用于持久变量

    • 在运行时

      /path/to/app$ vendor/bin/kahlan -env=DB_CONNECTION=sqlite,MAIL_DRIVER=log
      
  • 在您的 spec 中,您可以使用所有 kahlan 功能,以及 Laravel 测试糖

    • 辅助函数: app(), event()
    • 应用程序方法 $this->app->method()$this->laravel->method()
    • Laravel TestCase 功能,例如 $this->laravel->get('/')->assertResponseOk()
    • 应用程序实例 为以下之一: $this->app === $this->laravel->app === app()
  • 对于不需要 Laravel 的测试,有 --no-laravel 命令行选项,因为为每个测试启动应用程序对性能有很大影响

    /path/to/app$ vendor/bin/kahlan --spec=spec/unit --no-laravel
    

    或者,您可以在 .env/.env.kahlan 文件中提供 NO_LARAVEL=true,然后您将仅在必要时启用 Laravel

    /path/to/app$ vendor/bin/kahlan --spec=spec/functional --no-laravel=false
    

#快乐的编码!