我在laravel 4中使用jeffrey方式的laravel-test-helper包来测试我的模型。当我使用
protected $softDelete = true;
在我的模型中,以下断言失败:
public function testMyModel()
{
$obj = Factory::create('Modelname');
Assert::equals(1,$obj->count());
}
当我在没有$ softDelete变量的情况下运行测试时,它运行正常。 任何错误的线索? 这是phpunit命令的堆栈跟踪,如果它有任何帮助:
/var/www/project/vendor/way/laravel-test-helpers/src/Way/Tests/TestFacade.php:41
/var/www/project/vendor/way/laravel-test-helpers/src/Way/Tests/TestFacade.php:25
/var/www/project/vendor/way/laravel-test-helpers/src/Way/Tests/TestFacade.php:55
/var/www/project/app/tests/models/ModelTest.php:13
/var/www/project/app/tests/models/ModelTest.php:13
答案 0 :(得分:0)
Factory::create()
将为您的模型创建随机变量。因为您使用的是“softDelete” - 您的表格中有一个名为“deleted_at
”的字段。因此工厂将数据放入其中,Laravel认为记录已删除,因此->count()
返回0.
您需要将deleted_at的出厂默认设置显式设置为null
,如下所示:
$obj = Factory::create('Modelname', array('deleted_at' => null));