• 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 : 模拟认证的用户

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了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 : 模拟认证的用户

相关文章

  • 2022-04-29Photoshop简单制作蓝色洁净星星文字效果
  • 2022-04-29Photoshop制作立体效果的像素艺术字
  • 2022-04-29Photoshop制作可爱的卡通剪纸字
  • 2022-04-29浅谈小程序跨页面之间通信的几种方式
  • 2022-04-29Javascript获取日期的方法是什么
  • 2022-04-29怎么通过宝塔面板实现MySQL性能简单调优
  • 2022-04-29微信小程序如何获取图片宽度与高度
  • 2022-04-29关于PHP正则匹配中文
  • 2022-04-29浅谈小程序中实现下拉刷新与加载更多效果的方法
  • 2022-04-292018最新手机号验证正则表达式方法

文章分类

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

最近更新的内容

    • Nodejs+express中间件实现文件上传
    • uni-app小程序录音上传的解决方案
    • WordPress纯代码实现前端页面HTML完美压缩
    • 如何在PHP中获取数组单元数量
    • PHP如何根据ip查询详细地址
    • uniapp如何取消原生导航栏
    • MySQL高并发生成唯一订单号
    • 手把手带你在小程序中怎么实现3d裸眼轮播效果
    • Laravel中Kafka的使用详解
    • PhotoShop简单制作抽象拼色文字特效教程

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

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