• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > 介绍Laravel unit test : 模拟认证的用户

介绍Laravel unit test : 模拟认证的用户

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了Laravel unit test,模拟认证的用户等相关知识,希望对您有所帮助

下面给大家介绍Laravel unit test : 模拟认证的用户,希望对需要的朋友有所帮助!


Laravel unit test : 模拟认证的用户

在 Laravel 编写单元测试时经常会遇到需要模拟认证用户的时候,比如新建文章、创建订单等,那么在 Laravel unit test 中如何来实现呢?

官方解决方法

Laravel 的官方文档中的测试章节中有提到:

Of course, one common use of the session is for maintaining state for the authenticated user. The actingAs helper method provides a simple way to authenticate a given user as the current user. For example, we may use a model factory to generate and authenticate a user:

<?php use App\User; class ExampleTest extends TestCase{    public function testApplication()    {        $user = factory(User::class)->create();         $response = $this->actingAs($user)                         ->withSession(['foo' => 'bar'])                         ->get('/');    }}

其实就是使用 Laravel Testing Illuminate\Foundation\Testing\Concerns\ImpersonatesUsers Trait 中的 actingAs 和 be 方法。

设置以后在后续的测试代码中,我们可以通过 auth()->user() 等方法来获取当前认证的用户。


伪造认证用户

在官方的示例中有利用 factory 来创建一个真实的用户,但是更多的时候,我们只想用一个伪造的用户来作为认证用户即可,而不是通过 factory 来创建一个真实的用户。

在 tests 目录下新建一个 User calss:

use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable{    protected $fillable = [        'id', 'name', 'email', 'password',    ];}

必须在 $fillable 中添加 id attribute . 否则会抛出异常: 

Illuminate\Database\Eloquent\MassAssignmentException: id

接下来伪造一个用户认证用户:

$user = new User([    'id' => 1,    'name' => 'ibrand']); $this->be($user,'api');


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 介绍Laravel unit test : 模拟认证的用户

相关文章

  • WordPress给新文章增加new标志方法总汇
  • PhotoShop设计制作梦幻炫彩光斑文字效果教程
  • 解决Laravel在composer install时出现timeout问题
  • 帝国CMS后台密码忘了怎么办,找回密码的两种方法
  • PS绘制精致陌陌图标
  • WordPress建站教程,纯代码实现wordpress防止发布文章出现标题重复,自动检测重复标题文章
  • 忘记mysql密码了怎么办
  • Photoshop多边形套索工具无法闭合BUG(单击,双击,Esc,回车)均无效的解决办法
  • DedeCMSV5.6版自动采集功能规则使用基本知识详细讲
  • 怎么解决phpStorm使用vue提示"Attribute v-xxx is not allowed here"的问题

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 2018最新手机号验证正则表达式方法
    • Photoshop绘制十二生肖按钮图标教程
    • PS简单制作碎花布上的拼贴瓷砖文字效果教程
    • Discuz怎么添加广告位?自定义广告位方法浅析
    • 实现从Redis中订阅消息转发到 WebSocket 客户端
    • PHP生成小程序二维码乱码怎么办
    • 聊聊怎么在docker上部署运行workerman
    • javascript在php中文乱码怎么办
    • 让dede:flink拥有和dede:arclist一样使用limit标签
    • 发外链的pr比较高的论坛,不过要手工

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有