php - 如何在 Laravel 8 中断言没有键的错误
问题描述
我正在为我的应用程序编写测试。
这是我的测试:
/** @test */
public function change_password_password_must_be_the_same()
{
$old_password = 'password';
$different_password = 'password1';
$new_password = 'new password';
$user = User::factory()->create([
'password' => Hash::make($old_password)
]);
$this->actingAs($user)
->patch("/profile/{$user->id}/change-password", [
'password' => $different_password,
'new_password' => $new_password,
'confirm_new_password' => $new_password
])
// How do I assert this?
->assertSessionHasErrors([
'errors' => 'Password is incorrect.'
]);
}
如何在没有键的情况下断言错误?就像我在我正在测试的代码中执行此操作一样?
if (!Hash::check($password, $user->password)) {
return redirect()
->route('users.edit', ['user' => $user])
->withErrors('Password is incorrect');
}
解决方案
我终于找到了答案。它的:
$errors = session('errors');
$messages = $errors->getBag('default')->getMessages();
$this->assertEquals('Password is incorrect.', $messages[0][0]);
推荐阅读
- javascript - 多行标题 - React Native
- c# - 在 C# Unity3D 中创建游戏但它不起作用
- python - 嵌套循环不打印第一个元素而是转到第二个元素?
- c# - (C# Winforms) 在 TextBox 上画一个圆
- vba - 如果计算机连接到 Bloomberg,如何签入 VBA 代码
- javascript - React Native 中的 FormData 抛出空白对象
- css - 如何创建适当的 flexbox 以使内容内的一列可滚动而另一列静态?
- reactjs - 使用 axios 调用作为图像的 src
- html - 使用 daisydiff.jar 比较 HTML 数据时表格失真
- android - 从 Android 应用与 iOS 应用共享 GIF