0

モデルをテストするために、laravel 4 の jeffrey way による 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
4

1 に答える 1

0

Factory::create()、モデルの確率変数を作成します。「softDelete」を使用しているため、テーブルに「deleted_at」というフィールドがあります。したがって、ファクトリはそこにデータを入れており、Laravel はレコードが削除されたと判断し、->count()0 を返します。

null次のように、deleted_at の工場出荷時のデフォルトを明示的に設定する必要があります。

$obj = Factory::create('Modelname', array('deleted_at' => null));
于 2013-08-01T12:23:07.260 に答える