LARAVEL UNIT TEST - 与seeInDatabase相反

时间:2015-09-02 13:48:46

标签: php unit-testing laravel phpunit laravel-5.1

在Laravel 5.1中,有一种方法可以使用seeInDatabase($ table,$ fields)在资源数据库中进行资产...

有没有办法断言某些数据不在数据库中?类似于dontSeeInDatabase ...类似于dontSeeJson

2 个答案:

答案 0 :(得分:18)

Laravel v5.6

断言名称已更改

->assertDatabaseMissing(string $table, array $data, string $connection = null) 

相反的是

->assertDatabaseHas(string $table, array $data, string $connection = null)

以前的Laravel版本

有两种方法:

->notSeeInDatabase($table, array $data)  

->missingFromDatabase($table, array $data)

一个只是另一个的别名。

有关可用测试方法的完整列表,请查看位于vendor/laravel/framework/src/Illuminate/Foundation/Testing

的特征

答案 1 :(得分:6)

在最新版本的Laravel(截至目前为5.​​4)中,seeInDatabasemissingFromDatabase方法不可用。相反,有assertDatabaseHasassertDatabaseMissing方法。用法是一样的:

->assertDatabaseHas($table, array $data)

->assertDatabaseMissing($table, array $data)

因此,如果您现在使用Laravel的最新版本并进行测试,则应尝试使用assertDatabaseMissing()