跳过 Laravel 的 FormRequest 验证

2024-03-20

我最近添加了已被攻击 https://github.com/valorin/pwned-validator到我的表单请求类来检查破解的密码。鉴于这会进行外部 API 调用,有没有办法让我在测试期间完全跳过此验证规则或 FormRequest 类?

这是我在测试中提出的要求。

    $params = [
        'first_name' => $this->faker->firstName(),
        'last_name' => $this->faker->lastName(),
        'email' => $email,
        'password' => '$password',
        'password_confirmation' => '$password',
        'terms' => true,
        'invitation' => $invitation->token
    ];


    $response = $this->json('POST', '/register-invited', $params);

我正在测试的功能驻留在控制器上。在我的测试中,我使用以下规则发布了通过 FormRequest 传递的数据数组。

 public function rules()
 {
 return [
  'first_name' => 'required|string|max:70',
  'last_name' => 'required|string|max:70',
  'email' => 
  'required|email|unique:users,email|max:255|exists:invitations,email',
  'password' => 'required|string|min:8|pwned|confirmed',
   'is_trial_user' => 'nullable|boolean',
   'terms' => 'required|boolean|accepted',
    ];
  }

我想覆盖密码上的“pwned”规则,这样我就可以访问控制器,而不必担心通过验证。


根据提供的信息,我想说您正在执行一个集成测试,该测试执行实际的网络请求。在这种情况下,我想说您的测试套件连接到第三方是很好的,因为这是“集成”的一部分。

如果您仍然喜欢模拟验证规则,您可以换掉验证器 https://stackoverflow.com/questions/44586114/how-can-i-mock-unique-validation-rule/44586700#44586700使用任一swap

$mock = Mockery::mock(Validator::class);
$mock->shouldReceive('some-method')->andReturn('some-result');
Validator::swap($mock);

或者通过替换服务容器中的实例

$mock = Mockery::mock(Validator::class);
$mock->shouldReceive('some-method')->andReturn('some-result');
App::bind($mock);

或者,您可以模拟 Cache::remember() 调用,它是Pwned 验证规则本身 https://github.com/valorin/pwned-validator/blob/master/src/Pwned.php。这会导致类似的结果

Cache::shouldReceive('remember')
   ->once()
   ->andReturn(new \Illuminate\Support\Collection([]));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

跳过 Laravel 的 FormRequest 验证 的相关文章

  • Eloquent 准备查询但不执行

    我有一个 客户 表 我正在尝试使用 Laravel Eloquent 使用客户的 id 获取记录 Customer where customer id customer id gt get 然而 当执行此操作时 我检查 MySQL 日志并得
  • “stream_socket_enable_crypto():对等证书 CN=`gains.nanosupercloud.com' 与共享托管中预期的 CN=`smtp.sendgrid.net' 不匹配”

    我在 laravel 从事邮件工作 我有以下配置 MAIL DRIVER smtp MAIL HOST smtp sendgrid net MAIL PORT 587 MAIL USERNAME MAIL PASSWORD MAIL ENC
  • Laravel 按特定值对结果进行排序

    我有这行从数据库获取结果的代码 clanMembers gt User find Auth user gt clan id gt where clan id Auth user gt clan id gt orderBy username
  • 限制在WhereHas内

    所以我想获取最后状态等于给定状态的请求 我尝试过first 但它给了我一个错误并且限制不起作用 requests Request whereHas requestStatus function query use status return
  • PHPUnit - 使用配置文件时“未执行测试”

    问题 为了提高代码质量 我决定尝试学习如何使用单元测试来测试我的代码 而不是使用平庸的最佳测试解决方案 我决定使用 Composer 安装 PHPUnit 作为个人库 它可以让我实现常见的数据库功能 起初我没有 PHPUnit 的配置文件
  • Laravel 完整日历

    我正在尝试按照本教程进行操作https laravelcode com post laravel full calendar tutorial example using maddhatter laravel fullcalendar ht
  • Laravel 在公共文件夹中下载 pdf

    我在公共 下载中有一个pdf文件 我只想链接到它并下载它或在浏览器中打开它 我尝试击打http localhost 8000 downloads brochure pdf在浏览器中 但我只是看到一个没有错误的白屏 在 Chrome DevT
  • 特定文件夹的 .htaccess 例外

    这是我的 htaccess 代码 位于根文件夹中
  • Laravel 5 Auth 注销不起作用

    当我使用内置身份验证并尝试在以下位置注销用户时 auth logout 它没有像希望的那样工作 它似乎让用户保持登录状态 但是当我清除浏览器缓存时 我可以看到实际上已经将用户注销了 我在页面上没有收到任何错误 在日志文件中也没有收到任何错误
  • laravel 4 登录验证失败

    在 Laravel4 中 我在路由中编写了以下代码 但它总是将我重定向到登录页面 我用谷歌搜索并在堆栈溢出上找到了它 并尝试了所有解决方案但没有成功 我确信这将是一个愚蠢的错误 但请跟踪它 谢谢 Routes Route post logi
  • 如何使用 Laravel Eloquent 返回多重关系?

    我有一张桌子叫users 每个用户都有不同的事情 country device computer category 我为上述每一个 事物 创建了一个表格 类似如下 1 United States 2 United Kingdom 3 Aus
  • 从 octobercms 中的非 ajax 表单获取输入值

    我正在尝试构建一个简单的搜索功能 下面是我的搜索表格
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 如何在laravel中注册后自动登录

    我在 laravel 中注册用户时遇到问题 user假设是包含所有数组元素的数组 同时自动登录以下代码结果false 数据库中保存的密码是hash make password user id this gt user model gt ad
  • 邮件::队列不工作

    我无法在 laravel 5 4 中对电子邮件进行排队 在之前的 Laravel 5 3 项目中 一切都运行良好 发送仍然有效 Mail send email blank title gt nice content gt message f
  • Laravel 搜索关系

    我有两个相关的模型 我正在尝试在产品中进行搜索 并且仅显示实际搜索结果 而不是找到该产品的类别的所有产品 我不想搜索任何类别 因为无论搜索什么或找到什么 类别都会始终显示 Example I have the following categ
  • Laravel 4 使用资源控制器轻松删除记录

    我是 Laravel 框架的新手 但我真的很喜欢它 我最大的问题是我一直在寻找如何使用资源控制器删除单个记录 控制器方法 public function destroy id department Department find id de
  • PHPUnit - 模拟 S3Client 无法正常工作

    库 aws aws sdk php 2 PHP 版本 PHP 5 4 24 cli 作曲家 json require php gt 5 3 1 aws aws sdk php 2 require dev phpunit phpunit 4
  • 命令“tinker”未定义

    从 5 3 升级到 5 4 后 请按照说明操作 为了继续使用 Tinker Artisan 命令 您还应该安装 laravel tinker 软件包 composer require laravel tinker 安装软件包后 您应该添加
  • 致命错误:PHP 从版本 7.0 升级到 7.2 后找不到类“SoapClient”

    我升级了PHP 7 0 to 7 2在Ubuntu中 执行升级后 我安装了 Laravel 5 6 升级之前 类 SoapClient 是true 但是升级之后 我遇到了 致命错误 未找到 SoapClient 类 我检查了php ini

随机推荐

  • 更改 Laravel 5.2 中的登录/注册 URL

    我目前正在编写一个应用程序 该应用程序仅包含公司员工的帐户 而不包含常规网站访问者的帐户 因此 我想将与网站 管理 区域相关的 URL 保留在 admin URL 下 这意味着更改 login to admin login and regi
  • 获取一个 url 参数的数组

    我想获取 url param id 但它不起作用 这里每个人都可以帮助我吗 下面的代码不起作用 Url http localhost 9000 rest alerts ids 123 ids 456 路由配置文件 GET restws al
  • Excel-VBA:需要变量声明吗?

    如果写下面的代码会不会出错 Sub Something Dim i As integer Dim xRange As Range Dim yRange As Range Set xRange Range x table Set yRange
  • 控制 R 散点图中点的大小?

    在 R 中 plot 函数需要一个pch控制图中点的外观的参数 我正在制作具有数万个点的散点图 并且更喜欢一个小但不是太小的点 基本上 我发现pch 太小了 但是pch 19太胖了 中间有什么东西或者有什么方法可以以某种方式缩小这些点吗 A
  • 自定义 ASP.NET 身份

    我正在使用 Identity Server 4 并且已自定义 ASP NET Identity 用户 如下所示 public class ApplicationUser IdentityUser MaxLength 100 public v
  • Java 默认版本在 PATH 更改后不反映

    我当前正在 Java 1 7 0 17 64 位版本上运行 我想使用 Java 32 位版本启动一个应用程序 我更新了 PATH 变量以指向 C Program Files x86 Java jre7 bin Java 32 位版本 然后做
  • 如何在不设置内置错误的情况下触发 mat-date-range-input 的 mat-form-field 中 mat-error 的显示?

    根据问题 我有一个日期范围选择器start and end日期作为mat form field 我想执行自定义验证 例如 确保之间的绝对差异start and end不超过 15 天 并显示mat error在 的里面mat form fi
  • Groovy - 如何延迟 Groovlet 修改重新编译检查

    我是 Groovy 的新手 我正在考虑使用 Groovlets 不是 GRAILS 来替换一些 Servlet 如果我更改 Groovlet 的脚本文件 Groovlet 会重新编译并自动获取更改 包括从 Groovlet 引用的脚本 这对
  • 具有离散值的圆形 SeekBar

    我正在尝试创建一个具有离散非线性值的圆形搜索栏 我还希望这些值出现在圆圈之外 我从 GitHub 上查看了多个版本 其中最有希望的是JesusM https github com JesusM HoloCircleSeekBar但是 我想不
  • Emacs 是否可以运行位于远程服务器上的 Matlab shell?

    我希望能够使用 Matlab 模式 matlab el 来运行 matlab shell 唯一的问题是 Matlab 位于远程主机上 这可能吗 如果是这样 请解释一下 我现在正在和流浪汉玩 但没有成功 Thanks 我刚刚尝试通过 ssh
  • Task.Factory.StartNew 与 Task.Factory.FromAsync

    假设我们有一个 I O 绑定方法 例如进行数据库调用的方法 该方法可以同步和异步运行 那是 Sync IOMethod Async BeginIOMethod EndIOMethod 那么当我们以如下所示的不同方式执行该方法时 在资源利用率
  • 非平凡可复制类型的 C++ 值表示

    C 标准的当前草案 2019 年 3 月 有以下段落 basic types p 4 强调我的 T 类型对象的对象表示是 T 类型对象占用的 N 个 unsigned char 对象的序列 其中 N 等于 sizeof T T 类型对象的值
  • 在 JavaScript 块上使用 HTML 注释仍然有意义吗?

    过去 人们习惯将 HTML 注释标签包裹在 JavaScript 块周围 以防止 旧 浏览器显示脚本 即使 Lynx 足够聪明 可以忽略 JavaScript 那么为什么有些人仍然这样做呢 这些天有什么正当理由吗 编辑 我确实遇到过一种情况
  • 检查是否可以安全地评估符号

    我有一根绳子x 我觉得x是某个类型的子类型的字符串表示形式Number 例如 x可能会取值 Float64 我可以使用以下方法检查这一点 eval parse x lt Number 然而 有可能x包含一些危险的东西 比如一些变体 rm s
  • textFieldDidBeginEditing:没有被调用

    我从下面得到了代码this https stackoverflow com questions 1247113 iphone keyboard covers uitextfield所以问题 当我开始编辑时 我试图向上滑动文本字段 因为否则它
  • MySQL INT 含义

    我想知道如果我采用值为 8 的 INT 这是否意味着我只能从 1 到 99999999 或从 1 到 4294967295 UNSIGNED 该文档似乎对此非常清楚 数字类型属性 MySQL 支持选择性指定显示的扩展 基关键字后面的括号中的
  • CSRF - 仅在第一次登录

    当我在服务器上部署我的应用程序时 第一次我可以毫无问题地登录 但是当我注销时 我在注销发布请求中收到 403 Forbidden 然后我无法成功登录 因为我在登录请求上收到 403 错误 Ctrl F5 尝试再次登录 它可以工作 但只能一次
  • .NET 单委托与多播委托[重复]

    这个问题在这里已经有答案了 我深入阅读了一些有关委托的内容 令人困惑的是具有一种方法的委托可能与多播委托不同 然而 通过反射 您可以清楚地看到 即使只有一个方法 委托也确实派生自MulticastDelegate 并不是立即地源自于Dele
  • 在java中获取两个日期之间的天数[重复]

    这个问题在这里已经有答案了 您好 有两个日期格式的日期 如何获得两者之间的天数差异 Date date1 Date date2 int numberDays 建议使用 JodaTime API 来处理日期 import java util
  • 跳过 Laravel 的 FormRequest 验证

    我最近添加了已被攻击 https github com valorin pwned validator到我的表单请求类来检查破解的密码 鉴于这会进行外部 API 调用 有没有办法让我在测试期间完全跳过此验证规则或 FormRequest 类