laravel - Laravel 测试 seeJson 包含
问题描述
我在运行单元测试后得到了这个结果。
结果:
1) Tests\Functional\Controllers\Api\UsersControllerTest::testUsersIndex
Unable to find JSON fragment
[[{"email":"FRoAff4@mail.com","id":"706"}]]
within
[{"data":[],"draw":0,"error":"Not Found","recordsFiltered":0,"recordsTotal":1}].
Failed asserting that false is true.
代码:
$this->seeJsonContains([
'id' => $user->id,
'email' => $user->email,
]);
如果在参数中我添加true
它有效。我不明白任务参数是这里的逻辑值(true,false)。
后:
$this->seeJsonContains([
'id' => $user->id,
'email' => $user->email,
], true);
解决方案
的第二个参数seeJsonContains
否定断言,这意味着它将从 切换assertTrue
到assertFalse
。这就是您的测试通过的原因,因为它将检查响应 JSON 是否不包含id
and email
。
要使您的测试通过,请确保您UsersController@testUsersIndex
返回正确的 JSON。
在你的情况下:[[{"email":"FRoAff4@mail.com","id":"706"}]]
推荐阅读
- python - 如何配置 Index.fcgi 路径?
- python - SAS/Python:查找后跟非空格字符串的任何空格并用不同的值替换空格
- python - Linkedin API 无效访问令牌 (Python)
- python - 虚拟环境的问题 - python
- flutter - Flutter:: 右键单击 lib 时,New 未展开
- node.js - 无法使用模拟器获取实时数据库的参考
- angular - 如何解码 x509 证书以获取到期日期?
- ruby-on-rails - Bundler 找不到 gem "omniauth" 的兼容版本
- swift - 实例成员“fileDataRepresentation”不能用于“AVCapturePhoto”类型;你的意思是使用这种类型的值吗?
- debugging - STM32CubeProgrammer 上的 ST-LINK 错误:尝试连接时出现问题