Я хочу проверить api с реальной вставкой и запросом базы данных, поэтому я пытаюсь использовать метод setUpBeforeClass
и tearDownAfterClass
для процесса до и после тестирования.Laravel: используйте Eloquent Model in API Testing
<?php
use App\Models\User;
class UserTest extends TestCase {
public static function setUpBeforeClass()
{
User::create([ 'name' => 'Tom' ]);
}
public function testStore()
{
$this->call('POST', 'users', [
'name' => 'Tim'
]);
$this->assertResponseOk();
}
public static function tearDownAfterClass()
{
$users = User::where('name', '=', 'Tom')
->orWhere('name', '=', 'Tim')->get();
$users->each(function($user) {
$user->delete();
});
}
}
Но, когда он будет получать Eloquent
не найдено.
Fatal error: Class 'Eloquent' not found in /Applications/MAMP/htdocs/edu-api/apis/app/models/User.php on line 6
<?php namespace App\Models;
use Illuminate\Auth\UserTrait;
use Illuminate\Auth\UserInterface;
use Illuminate\Auth\Reminders\RemindableTrait;
use Illuminate\Auth\Reminders\RemindableInterface;
use Eloquent;
class User extends Eloquent {
Есть ли ошибки, которые я создаю с пространством имен или окружающей средой, или даже я не должен этого делать?
В качестве альтернативы - Вы могли бы рассмотреть этот пакет из Джеффри Путь для посева БД во время испытаний. Работает удивительно хорошо: https://github.com/laracasts/TestDummy – Laurence