我所搜索的与此相关的一切都表明你不应该对Eloquent进行单元测试,因为它已经在Laravel中进行了单元测试。
然而,在这种情况下,我有另一个类,它不是Eloquent模型,但它确实将Eloquent模型记录插入到数据库中。我想对这堂课进行单元测试。
例如:
public function methodIWantToTest()
{
$record = new User();
$user->name = 'Bob';
$user->email = 'bob@example.com';
$user->save();
}
我如何对此方法进行单元测试?当我尝试它实际上插入数据库。当然,我甚至可以在没有靠近数据库的情况下做到这一点吗?
答案 0 :(得分:5)
如果您不想使用seeInDatabase()
,也许应该尝试:
$mock = Mockery::mock('User');
$mock->shouldReceive('save')->once()->andReturn(true);
$this->assertTrue(methodIWantToTest($mock));