php - 拉维尔 : Use Eloquent Model in API Testing

标签 php laravel laravel-4 phpunit eloquent

我想用真实的数据库插入和查询来测试 api,所以我尝试使用 setUpBeforeClasstearDownAfterClass 方法进行前后测试过程。

<?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 {

我是否在命名空间或环境方面犯了任何错误,甚至我不应该这样做?

最佳答案

EloquentModel 类的别名,因此您需要:

use Illuminate\Database\Eloquent\Model as Eloquent;

class User extends Eloquent {

或者简单地扩展模型而不使用内联别名

use Illuminate\Database\Eloquent\Model;

class User extends Model {

关于php - 拉维尔 : Use Eloquent Model in API Testing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27521397/

相关文章:

php - 点击 'home' -logo 返回 404 错误页面

javascript - 如何使用php在脚本中动态传递值以生成图形

laravel - 当我在 Laravel 中更改主键时,SoftDelete 不起作用

php - Laravel 4 中未找到 Controller 路由

php - 将此复杂查询转换为 ORM 或 Laravel 查询生成器

php - 检查 domnodelist->item(x)->nodeValue == "nbsp;"

php - 获取引用对象的数据

php - 拉维尔,PHP : json_encode gives different result in Laravel and raw PHP

php - 如何将参数绑定(bind)到模型上使用的 Laravel 中的原始数据库查询?

php - Laravel 中间件格式化响应数组的键