首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模型测试中的$softDelete问题

模型测试中的$softDelete问题
EN

Stack Overflow用户
提问于 2013-08-01 09:57:45
回答 1查看 226关注 0票数 0

我正在使用拉拉-测试助手包杰弗里方式在拉拉4测试我的模型。当我用

代码语言:javascript
复制
protected $softDelete = true;

在我的模型中,以下断言失败:

代码语言:javascript
复制
public function testMyModel()
{

    $obj = Factory::create('Modelname');
    Assert::equals(1,$obj->count());
}

当我在没有$softDelete变量的情况下运行测试时,它工作得很好。有什么不好的线索吗?这是phpunit命令的堆栈跟踪,如果有任何帮助的话:

代码语言:javascript
复制
/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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-01 12:23:07

Factory::create()将为您的模型创建随机变量。因为您使用的是“softDelete”--您的表中有一个名为“deleted_at”的字段。所以工厂把数据放进去了,Laravel认为记录被删除了,所以->count()返回0。

您需要显式地将deleted_at的工厂默认值设置为null,如下所示:

代码语言:javascript
复制
$obj = Factory::create('Modelname', array('deleted_at' => null));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17990823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档