如何对在Laravel 5中插入的Eloquent模型记录进行单元测试?

时间:2016-09-05 16:35:26

标签: php laravel unit-testing eloquent

我所搜索的与此相关的一切都表明你不应该对Eloquent进行单元测试,因为它已经在Laravel中进行了单元测试。

然而,在这种情况下,我有另一个类,它不是Eloquent模型,但它确实将Eloquent模型记录插入到数据库中。我想对这堂课进行单元测试。

例如:

public function methodIWantToTest()
{
    $record = new User();

    $user->name = 'Bob';
    $user->email = 'bob@example.com';

    $user->save();
}

我如何对此方法进行单元测试?当我尝试它实际上插入数据库。当然,我甚至可以在没有靠近数据库的情况下做到这一点吗?

1 个答案:

答案 0 :(得分:5)

如果您不想使用seeInDatabase(),也许应该尝试:

$mock = Mockery::mock('User');
$mock->shouldReceive('save')->once()->andReturn(true); 
$this->assertTrue(methodIWantToTest($mock));