[英]Laravel : Use Eloquent Model in API Testing
我想用真正的數據庫插入和查詢來測試api,所以我嘗試使用setUpBeforeClass
和tearDownAfterClass
方法進行前后測試過程。
<?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 {
我在命名空間或環境中是否有任何錯誤,甚至我不應該這樣做?
Eloquent
是Model
類的別名,因此您需要:
use Illuminate\Database\Eloquent\Model as Eloquent;
class User extends Eloquent {
或者只是擴展模型而不使用內聯別名
use Illuminate\Database\Eloquent\Model;
class User extends Model {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.