Модульные тесты, созданные с помощью php artisan make:test -- unit UnitTestClassName
extends \Tests\TestCase
Функциональные тесты, созданные с помощью php artisan make:test FunctionalTestClassName
, также расширяемые \Tests\TestCase
\Tests\TestCase
extends Illuminate\Foundation\Testing\TestCase
Тем не менее, браузерный тест Laravel Dusk создает с php artisan dusk:make DuskTestClassName
extend \Tests\DuskTestCase
, что, в свою очередь, расширяет 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.
...
}
...
}
и I use
, которыечерта в моих тестах. Есть ли лучший способ? В частности, есть ли общий класс тестирования, который мне не хватает?
Особая проблема, с которой я сталкиваюсь, заключается в том, что моя черта не расширяет какой-либо TestCase, поэтому я не могу вызывать такие функции, как
$this->assertNotNull($testUser,"Test user not found");
в моем признаке, поэтому мне нужно продублировать этот код в TestCase и DuskTestCase.