Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在Laravel,phpunit中通过Elount更新数据_Php_Laravel_Eloquent - Fatal编程技术网

无法在Laravel,phpunit中通过Elount更新数据

无法在Laravel,phpunit中通过Elount更新数据,php,laravel,eloquent,Php,Laravel,Eloquent,我正在使用Laravel开发一个应用程序,它作为ORM很有说服力,phpunit用于单元测试。但我无法更新数据库中的数据。尽管没有例外、警告或错误。如果在更新之前和更新之后,在laravel中检查模型类的对象,则显示模型类中的数据已更改,但在检查数据库时,发现数据未更改 模型类 class Post extends Model { protected $table = "posts"; protected $fillable = [ 'id',

我正在使用Laravel开发一个应用程序,它作为ORM很有说服力,phpunit用于单元测试。但我无法更新数据库中的数据。尽管没有例外、警告或错误。如果在更新之前和更新之后,在laravel中检查模型类的对象,则显示模型类中的数据已更改,但在检查数据库时,发现数据未更改

模型类

class Post extends Model
{
    protected $table = "posts";

    protected $fillable = [
        'id',
        'user_id',
        'title',
        'description',
        'total_needed',
        'total_collected',
        'total_expanse',
        'start_date',
        'end_date',
        'active',
        'updated_at',
        'created_at',
    ];
}//class
存储库代码

class Post_Repo_Impl implements Post_Repo_I
{
    public function update(Post $postUpdate)
    {
        $raedOld = false;
        $updateStatus = false;
        try {
            $psot_id = $postUpdate->id;
            $postOrgin = Post::find($psot_id);
            $raedOld = true;
        } catch (Exception $e) {
            error_log("Post Update : failed to read existig post.");
        }
        if ($raedOld) {
            try {
                 //line 1
                echo "\n" . $postOrgin->title . "\n";
                $this->setPostValues($postOrgin, $postUpdate)->update();
                 //line 2
                echo "\n" . $postOrgin->title . "\n";
                $updateStatus = true;
            } catch (Exception $e) {
                error_log("Post Update : Failed to save updated post." . "\n\n" . $e);
            }
        }
        return  $updateStatus;
    } //update
}
class RepoPost extends TestCase
{
    public function testMain()
    {
        echo "\n >----------- Test Main : ---------> \n";
        $this->postUpdate();
    } //mother test

    public function postUpdate()
    {
        $postDummyUpdate = new Post();
        $postDummyUpdate->id = '2';
        $postDummyUpdate->user_id = 'Tst';
        $postDummyUpdate->title = 'Post Updated Repo Test........';
        $postDummyUpdate->description = 'UnitTesting of URLs';
        $postDummyUpdate->total_needed = '2000';
        $postDummyUpdate->total_collected = '1000';
        $postDummyUpdate->total_expanse = '500';
        $postDummyUpdate->start_date = '22-09-2019';
        $postDummyUpdate->end_date = '22-10-2019';
        $postDummyUpdate->active = '1';
        $postDummyUpdate->updated_at = '2019-09-24';
        $postDummyUpdate->created_at = '2019-09-22';

        echo '\n----PostUpdate----\n';
        $postRepoSave = $this->getRepoPostImpl();
        dd($postRepoSave->update($postDummyUpdate));
        if ($postRepoSave == false) {
            error_log("\n\nTest : Data Save Failed.");
        } else {
            error_log("Saved Post ID : " . $postRepoSave);
        }
    }

    public function getRepoPostImpl()
    {
        return new Post_Repo_Impl();
    }
}
第1行和第2行,不打印相同的值。第2行打印更改的值

单元测试代码

class Post_Repo_Impl implements Post_Repo_I
{
    public function update(Post $postUpdate)
    {
        $raedOld = false;
        $updateStatus = false;
        try {
            $psot_id = $postUpdate->id;
            $postOrgin = Post::find($psot_id);
            $raedOld = true;
        } catch (Exception $e) {
            error_log("Post Update : failed to read existig post.");
        }
        if ($raedOld) {
            try {
                 //line 1
                echo "\n" . $postOrgin->title . "\n";
                $this->setPostValues($postOrgin, $postUpdate)->update();
                 //line 2
                echo "\n" . $postOrgin->title . "\n";
                $updateStatus = true;
            } catch (Exception $e) {
                error_log("Post Update : Failed to save updated post." . "\n\n" . $e);
            }
        }
        return  $updateStatus;
    } //update
}
class RepoPost extends TestCase
{
    public function testMain()
    {
        echo "\n >----------- Test Main : ---------> \n";
        $this->postUpdate();
    } //mother test

    public function postUpdate()
    {
        $postDummyUpdate = new Post();
        $postDummyUpdate->id = '2';
        $postDummyUpdate->user_id = 'Tst';
        $postDummyUpdate->title = 'Post Updated Repo Test........';
        $postDummyUpdate->description = 'UnitTesting of URLs';
        $postDummyUpdate->total_needed = '2000';
        $postDummyUpdate->total_collected = '1000';
        $postDummyUpdate->total_expanse = '500';
        $postDummyUpdate->start_date = '22-09-2019';
        $postDummyUpdate->end_date = '22-10-2019';
        $postDummyUpdate->active = '1';
        $postDummyUpdate->updated_at = '2019-09-24';
        $postDummyUpdate->created_at = '2019-09-22';

        echo '\n----PostUpdate----\n';
        $postRepoSave = $this->getRepoPostImpl();
        dd($postRepoSave->update($postDummyUpdate));
        if ($postRepoSave == false) {
            error_log("\n\nTest : Data Save Failed.");
        } else {
            error_log("Saved Post ID : " . $postRepoSave);
        }
    }

    public function getRepoPostImpl()
    {
        return new Post_Repo_Impl();
    }
}

在测试代码中返回true。

在单元测试中更新数据库中的数据不是单元测试。@CaddyDZ,你能帮点忙吗?你昨天已经问了这个问题,我已经回答了