使用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浏览器测试用例,而扩展了Laravel\Dusk\TestCase
似乎没有通用的类可以向其添加诸如要测试的用户(至少在供应商文件夹之外)之类的东西。
要允许共享代码,我在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中复制该代码。
答案 0 :(得分:0)
只需在特征中静态调用assert方法:
self::assertNotNull($testUser,"Test user not found");