使用 Queue::fake() 测试监听器

2023-12-24

我的 Laravel 5.5 应用程序有一个Product模型。这Product模型有一个dispatchesEvents属性看起来像这样:

/**
 * The event map for the model.
 *
 * @var array
 */
protected $dispatchesEvents = [
    'created' => ProductCreated::class,
    'updated' => ProductUpdated::class,
    'deleted' => ProductDeleted::class
];

我还有一个叫做CreateProductInMagento它被映射到ProductCreated事件在EventServiceProvider。该监听器实现了ShouldQueue界面。

当一个产品被创建时,ProductCreated事件被触发并且CreateProductInMagento侦听器被推送到队列并运行。

我现在正在尝试为所有这些编写一个测试。这是我所拥有的:

/** @test */
public function a_created_product_is_pushed_to_the_queue_so_it_can_be_added_to_magento()
{
    Queue::fake();

    factory(Product::class)->create();

    Queue::assertPushed(CreateProductInMagento::class);
}

但我得到一个The expected [App\Listeners\Magento\Product\CreateProductInMagento] job was not pushed.错误信息。

如何使用 Laravel 测试可排队监听器Queue::fake() method?


这里的问题是监听器不是推送到队列的作业。相反,有一个Illuminate\Events\CallQueuedListener作业已排队,并在解决后依次调用适当的侦听器。

所以你可以这样做你的断言:

Queue::assertPushed(CallQueuedListener::class, function ($job) {
    return $job->class == CreateProductInMagento::class;
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Queue::fake() 测试监听器 的相关文章

随机推荐

  • 如何从 @types/jsonwebtoken 添加附加属性到 JwtPayload 类型

    我是打字稿新手 正在尝试移植快速应用程序以使用打字稿 服务器使用 JWT 进行身份验证 授权 我有一个实用程序函数可以解码和验证给定的令牌 该函数被包装在一个承诺中 因此我可以在实现它的中间件中使用 async await import h
  • java.lang.IllegalArgumentException:无法获取数组 的 JDBC 类型

    我想将输出数据导入到mysql数据库中 但是出现以下错误 我不会将数组转换为所需的字符串类型 可以帮助我吗 val Array trainingData testData msgDF randomSplit Array 0 9 0 1 va
  • Google Chrome 颜色选择器没有响应

    Google Chrome 颜色选择器没有响应 我尝试重新安装并重置 Chrome 如何解决这个问题 重置开发工具 并不能解决问题 我不完全确定此错误的确切原因是什么 但唯一可用的修复需要在更新中完成 尽管我没有花太多时间寻找 但我在代码本
  • 尝试使用 Highgui.imread 加载图像(OpenCV + Android)

    我尝试加载图像 File root Environment getExternalStorageDirectory File file new File root image gif Mat m Highgui imread file ge
  • 如何根据标点符号和空格分割字符串?

    我有一个String我想根据标点符号和空格进行分割 的正则表达式参数应该是什么split method 带有一些怪异处理的代码 请注意 它会跳过输出循环中的空标记 这又快又脏 您可以将需要拆分和删除的任何字符添加到正则表达式模式中 tchr
  • 透明背景的颤动角半径

    下面是我的代码 我希望渲染一个具有透明背景的圆角容器 return new Container padding const EdgeInsets all 32 0 height 800 0 color const Color 0xffDC1
  • 为什么堆内存使用量和加载的类数量不断增加?

    我在用JVM Explorer 链接到 JVM 资源管理器 http jvmmonitor org doc index html 来分析我的 Spring 应用程序 我对此有以下问题 为什么 已用堆内存 在申请后仍然不断增加 已启动但尚未收
  • bootstrap 3在模式弹出后禁用背景[重复]

    这个问题在这里已经有答案了 我正在尝试使用下面给定的代码在我的代码中弹出 bootstrap 3 模式 div class modal fade div class modal dialog div class modal content
  • Android Studio-图像显示在设计视图中但不在模拟器中

    我正在学习 android 应用程序开发 因此 当我构建一个简单的应用程序以在屏幕上显示两个图像时 我使用了 ImageView 图像显示在 android studio 设计屏幕中 但是当我尝试使用运行应用程序时genymotion 模拟
  • 多态性(继承)和值类型

    我有很多类型 PixelMeasure PointMeasure CentimeterMeasure等等 表示带有单位的值 我希望他们有 值语义 例如实际上是不可变的 不必担心内存分配 并且 多态性 我可以返回一个类型的对象Measure并
  • 在 Express 中监听 UDP 消息

    我有一个使用 Express 的基本 Node js 服务器 它需要能够处理 TCP 消息以及 UDP 消息 TCP 部分已启动并运行良好 但现在我需要集成一种嗅探 UDP 消息的方法 我尝试使用以下方法将处理程序添加到过滤器堆栈中dgra
  • java中的toArray与stream.toArray有什么性能差异

    我需要将 ids 列表转换为 ids 数组 我可以通过多种方式做到这一点 但不确定应该使用哪一种 Say 1 ids stream toArray Id new 2 ids toArray new Id ids length 哪一种更有效
  • 使用 XmlDocument 保留 xml 格式

    我正在使用 XmlDocument 来处理 xml 如何使用当前格式保存 XmlDocument 当前格式
  • pdb 绕过错误/跳转失败:只能从“行”跟踪事件跳转

    我正在尝试使用 pdb 调试 Python 程序 程序可能是这样的 def main a 1 print b c 2 d 3 显然 print b 是一个拼写错误 应该是 print a 但这并不重要 我可以用文本编辑器修复它 但我想绕过这
  • Linux系统上打印文件的uid

    我正在学习c编程 我正在尝试让我自己的程序类似于ls命令但选项较少 我正在做的是将输入目录 文件名作为参数 然后获取所有目录条目direntstruct 如果是目录 之后我使用 stat 获取文件的所有信息 但是当我使用 write 打印这
  • Node.js:类型错误:对象不是函数

    我有一个奇怪的错误 var http require http var request require request http createServer function request response response writeHe
  • 如何高效替换XML的多个节点?

    我试图一次性替换单个文档的大约 500 个节点 并且我的数据库中有 5000 多个文档 我正在使用的代码与我之前问过的这个问题相关 Link https stackoverflow com questions 51998598 how to
  • EJB3.1 系统异常与 javax.ejb.EJBException

    在提出我的问题之前 先介绍一下 EJB3 1 异常的背景知识 应用程序例外包括 用户定义的已检查或未检查异常 ApplicationException注解 所有已检查的异常 java lang Exception及其子类异常 除了 java
  • 更改 IP 地址后 Riak 节点不再工作

    我使用实例化 Amazon EC2 虚拟 Ubuntu 12 04 服务器作为我的单个 Riak 节点 我已经使用 basho 网站上的指南完成了在实例上设置 Riak 的所有正确阶段here http docs basho com ria
  • 使用 Queue::fake() 测试监听器

    我的 Laravel 5 5 应用程序有一个Product模型 这Product模型有一个dispatchesEvents属性看起来像这样 The event map for the model var array protected di