2013-08-01 53 views
0

我使用laravel 4中的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

Factory::create()將創建隨機變量您的模型。因爲你正在使用'softDelete' - 你的表中有一個名爲'deleted_at'的字段。所以工廠將在那裏的數據,Laravel認爲記錄被刪除,所以->count()返回0

您需要明確設置出廠默認的deleted_at到null這樣的:

$obj = Factory::create('Modelname', array('deleted_at' => null)); 
+0

感謝.. deleted_at專欄並未跨越我的想法 – jayant