我如何在Laravel Dusk Browser测试,单元测试和功能测试之间共享代码

问题描述 投票:0回答:1

使用php artisan make:test -- unit UnitTestClassName创建的单元测试扩展了\Tests\TestCase

使用php artisan make:test FunctionalTestClassName创建的功能测试也扩展了\Tests\TestCase

[\Tests\TestCase延伸Illuminate\Foundation\Testing\TestCase

但是,使用php artisan dusk:make DuskTestClassName扩展了\Tests\DuskTestCase,又扩展了Laravel\Dusk\TestCase的Laravel Dusk浏览器测试用例创建>

似乎没有通用类可以向其添加诸如要测试的用户(至少在供应商文件夹之外)之类的东西。

为了允许共享代码,我在app \ Traits \ TestData.php中创建了一个特征:

<?php
namespace App\Traits;
trait TestData {
  static $testUserId = 40;
  public static function checkTestData() {
    // returns an array of strings describing any problems with the test data setup.
    ...
  }
  ...
}

和我use我测试中的特征。有什么更好的办法吗?具体来说,我是否缺少通用的测试课程?

我遇到的具体问题是我的特征没有扩展任何TestCase,所以我不能调用类似的函数

$this->assertNotNull($testUser,"Test user not found");

我的特质,所以我需要在TestCase和DuskTestCase中复制该代码。

[使用php artisan make:test创建的单元测试–单元UnitTestClassName扩展了\ Tests \ TestCase功能测试。

只需在特征中静态调用assert方法:
self::assertNotNull($testUser,"Test user not found");
laravel-dusk laravel-testing
1个回答
0
投票
© www.soinside.com 2019 - 2024. All rights reserved.