Php 如何在Laravel 5.2模型中模拟身份验证

Php 如何在Laravel 5.2模型中模拟身份验证,php,unit-testing,laravel-5,model,mocking,Php,Unit Testing,Laravel 5,Model,Mocking,我正在尝试为一个全新的迷你应用程序编写一些单元测试。我通常写函数测试,所以我要尝试用模拟和存根以及所有这些东西来正确地完成它,这些东西使它与代码有关 模型如下所示: <?php namespace App; use Illuminate\Database\Eloquent\Model; use Auth; class myModel extends Model { public static function getUser() { $user = \

我正在尝试为一个全新的迷你应用程序编写一些单元测试。我通常写函数测试,所以我要尝试用模拟和存根以及所有这些东西来正确地完成它,这些东西使它与代码有关

模型如下所示:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Auth;

class myModel extends Model
{
    public static function getUser()
    {
        $user = \Auth::user();
        return $user->adldapUser->cn[0];
    }
}
但是,当我运行单元测试时,会收到以下错误消息:

有1个错误:

1) MyModelTest::testGetUser ErrorException:尝试获取的属性 非对象

/home/aidan/web/vagrant-web-dev/src/apps/orcid/app/MyModel.php:61 /home/aidan/web/vagrant-web-dev/src/apps/orcid/tests/MyModelTest.php:18

如果我发布$user,它是空的


我做错了什么?

在问了半个小时后,我又开始回答我自己的问题了

为了繁荣,我把它留在这里

答案就在这里的帖子里:

因此,我将$this->getMock替换为

Auth::shouldReceive('user')->once()->andreturn($mockResult);

工作

在问了半个小时后,我又开始回答我自己的问题了

为了繁荣,我把它留在这里

答案就在这里的帖子里:

因此,我将$this->getMock替换为

Auth::shouldReceive('user')->once()->andreturn($mockResult);
工作