问题标签 [laravel-testing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
613 浏览

laravel - 不遵循如何在 laravel 中测试广播事件

所以考虑以下事件:

这里没有什么复杂的。

所以根据文档,这就是我想测试这个事件的方式:

但我得到:

Tests\Unit\Health\Datasets\Builders\UpdateApprovedClinicianCountBroadcastEventTest x 广播应该发出 [0.360s]

时间:503 毫秒,内存:30.00 MB

有 1 次失败:

1) Tests\Unit\Health\Datasets\Builders\UpdateApprovedClinicianCountBroadcastEventTest::testBroadCastShouldEmit 未调度预期的 [App\Modules\Clinics\Events\UpdateApprovedClinicianCountBroadcastEvent] 事件。断言 false 为 true 失败。

/Users/xxx/Documents/health/vendor/laravel/framework/src/Illuminate/Support/Testing/Fakes/EventFake.php:62 /Users/xxx/Documents/health/vendor/laravel/framework/src/Illuminate/Support /Facades/Facade.php:261 /Users/xxx/Documents/health/tests/Unit/Modules/Clinics/Events/UpdateApprovedClinicianCountBroadcastEventTest.php:31

那么,如何测试广播事件呢?我应该打电话给这个活动吗?这个调度方法会为我调用它吗?就像我很困惑

0 投票
1 回答
68 浏览

laravel - Laravel - 测试具有数据依赖关系的 API

我正在开发一个带有身份验证的 Laravel 应用程序。该应用程序还有一个 API。现在我想测试应用程序的所有 API 端点。问题是,一些端点需要数据库中的数据来“工作”。

如何测试这样的应用程序?我是否必须以正确的顺序测试应用程序才能归档类似的东西?  

例如:  

  1. 创建用户
  2. 创建新帖子
  3. 编辑新帖子
  4. 创建新用户
  5. 用户 1 的评论帖子
  6. 使用用户 1 登录
  7. 看帖子评论
  8. 删除帖子

或者是否可以模拟这样的东西,所以我不需要特定的订单?

我看到 Laravel 已经内置了 HTTP 测试,但我不知道如何处理数据依赖关系。谢谢你的帮助!

0 投票
0 回答
320 浏览

php - Laravel 模型工厂 - 大型 JSON 存根

我从外部 API 中提取订单信息并将整个 JSON 响应保存到documents表中。

我显然不想在测试时调用这个 API,所以我设置了一个工厂,但我正在努力解决如何提取这些 JSON 存根。例如:

// 工厂

// 当前使用它就像...

其中$this->fullDocuments()包含来自 API 的 document_id 和原始 JSON 响应的数组。

我知道一个更好的方法是工厂化整个 JSON 文档。JSON 包含大约 500 行,所以这将非常耗时,但我不拥有这些数据,所以我认为我不应该试图伪造它。

在我的测试中,我更愿意执行以下操作,但不确定如何操作。

0 投票
1 回答
488 浏览

laravel - How can I assert an instance of a ResourceCollection in Laravel?

I am working with a feature test and it's returning data correctly; all things are coming back correctly; and I'm at the final portion of my test.

I am struggling to assert that I'm getting back a ResourceCollection:

Here is the portion of my test:

MyFeature.php

The error I get back is:

Failed asserting that stdClass Object (...) is an instance of class "Illuminate\Http\Resources\Json\ResourceCollection".

I'm not sure what I should be asserting in this case. I am getting back a resource collection, what should I be using instead? Thank you for any suggestions!

EDIT

Thank you @mare96! Your suggestion lead me to another approach that seemed to work. Which is great but I'm not too sure I really understand why...

Here's my full test (including my final assertion):

0 投票
1 回答
57 浏览

laravel - Laravel 测试 - 带有文件的数据提供者?

我不知道如何使用 dataProvider 进行带有文件字段的 laravel 测试:

头像”字段是图像或文件,但我有一个错误:

0 投票
1 回答
315 浏览

laravel - Laravel 通知断言传递给邮件降价视图的数据

我正在做一个 Laravel 项目。我正在为我的应用程序编写集成/功能测试。我现在正在编写一个测试,我需要断言传递给电子邮件通知的数据和传递给它的视图的数据。我找到了这个链接,https://medium.com/@vivekdhumal/how-to-test-mail-notifications-in-laravel-345528917494

这是我的通知类

正如您在代码中看到的,我将数据传递给 mail.admin.helpcenter.created-admin 刀片视图。

这是我的测试方法。

正如您在测试中看到的我的评论,我可以使用 $mailData 变量做一些断言。但这不包括传递给视图的数据。如何断言或获取传递给刀片视图/模板的数据或变量?

0 投票
1 回答
392 浏览

laravel - Laravel 测试未通过

所以我正在学习为我的应用程序进行测试以及它不想通过的测试之一,这是逻辑:基本上,当用户请求主页时,我希望数据库列表计数为 0 ,这通过了,那么我也希望会话有一个错误键,NoBook在这里它失败了。这是我尝试过的代码:

但我收到此错误的问题是:

以及添加会话错误的代码:

0 投票
1 回答
1649 浏览

laravel - Laravel 6/7 测试:尚未设置外观根

我正在尝试为我的 Laravel 7 应用程序编写一些测试。但我一直面临A facade root has not been set.错误。

任何人都可以解释这个错误的原因吗?

0 投票
0 回答
1074 浏览

php - Laravel Sanctum 测试

我正在尝试测试我的 API 身份验证方法,因此我创建了 ConfirmPasswordControllerTest :

我使用 dd() 检查响应中的错误消息,我一直看到:

我不明白这里发生了什么,我使用的是 Laravel Sanctum,所以我的 api 路由有 auth:sanctum 中间件。

编辑:如果我在帖子中不包含任何数据,例如:

测试按预期运行:

编辑 2:我调试应用程序,我发现问题出在 PasswordConfirmController 上:

它调用 resetPasswordConfirmationTimeout() 并且此方法需要使用会话:

0 投票
2 回答
169 浏览

laravel - Testing Laravel lighthouse mutations with database

I am trying to use database and laravel-lighthouse in tests. I am using the traits for GraphQL and Database Testing, mutation works but tests don't.