问题标签 [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 投票
3 回答
2834 浏览

laravel - 如果在 Laravel 中广播事件,如何测试/断言

我正在开发一个 Laravel 应用程序。我在我的应用程序中使用 Laravel 广播。我现在要做的是尝试测试是否在 Laravel 中广播了一个事件。

我正在广播这样的事件:

我想测试是否广播了该事件。我该如何测试它?我的意思是在单元测试中。我想做类似的事情

附加信息

该事件在创建项目时触发的观察者事件中广播。

0 投票
1 回答
1008 浏览

laravel - Laravel 单元测试是否在触发 eloquent 模型事件时触发事件

我正在开发一个 Laravel 应用程序并在此过程中编写测试。现在,我在编写一个测试时遇到问题,该测试断言在触发 eloquent 模型事件时是否触发了事件。这就是我正在做的事情。

这是我的 ItemObserver 创建的函数

如您所见,我在雄辩的模型观察者的创建事件中触发了一个事件。

如果我想断言是否在测试中触发了事件,我必须伪造事件然后断言类似这样的东西。

正如您在测试代码中看到的那样,我试图断言是否在创建项目时触发了事件。但是测试永远不会通过,因为观察者类的创建函数永远不会被调用,因为事件是在测试中伪造的。我该如何测试这种情况?

0 投票
1 回答
43 浏览

phpunit - 测试 Laravel 项目时的回声警告和注意事项

在测试 Laravel 项目时,我想在某些情况下手动回显警告。

0 投票
1 回答
1753 浏览

laravel - Laravel 测试。断言准确的 JSON 结构

我有一个 laravel API 项目。有很多安全数据不应该在 API 响应中显示给用户。true如果只有响应结构与测试中的预设结构完全相同,我需要一些方法来编写测试。

因此,如果我的测试结构是$structure = [ 'data' => ['_id', 'user' => ['name', 'email], 'title'];,但作为响应,我收到或多或少的字段,我需要这个测试失败。

在我发现的文档中:

assertJson- 期待确切的键 => 值,但我只需要一个键; assertJsonStructure- 即使某些字段丢失或响应包含一些其他字段,也返回 true。

0 投票
1 回答
262 浏览

laravel-dusk - 如何在 Laravel Dusk 浏览器测试、单元测试和功能测试之间共享代码

php artisan make:test -- unit UnitTestClassName使用扩展创建的单元测试\Tests\TestCase

功能测试创建php artisan make:test FunctionalTestClassName也扩展\Tests\TestCase

\Tests\TestCase延伸Illuminate\Foundation\Testing\TestCase

但是,Laravel Dusk 浏览器测试用例使用php artisan dusk:make DuskTestClassNameextend创建\Tests\DuskTestCase,而后者又扩展Laravel\Dusk\TestCase

似乎没有通用类,我可以向其中添加要测试的用户之类的内容(至少在供应商文件夹之外)。

为了允许共享代码,我在 app\Traits\TestData.php 中创建了一个特征:

use在我的测试中具有这种特征。有没有更好的办法?具体来说,我缺少一个常见的测试类吗?

我遇到的具体问题是我的特征没有扩展任何TestCase,所以我不能调用像

$this->assertNotNull($testUser,"Test user not found");

在我的特质中,所以我需要在 TestCase 和 DuskTestCase 中复制该代码。

0 投票
1 回答
21 浏览

laravel - laravel windows local phpunit.bat 变空

我一直在进行黄昏浏览器测试,然后回到我的一些 phpUnit 单元测试,然后运行:

令我惊讶的是,什么也没发生!

我发现 phpunit.bat 文件被截断 - 0 字节长。

这个文件的内容应该是什么?

Laravel 5.4.36

0 投票
1 回答
513 浏览

php - Laravel 标头在测试时为空

我正在使用基于帐户模型的 Laravel 构建多租户 API,我通过在所有租户模型上使用特征(AccountScoped)来确定请求阅读器“帐户”正在使用的租户,一切都在邮递员上工作,但是为什么要测试标题在特质上是不可访问的。

AccountScoped (特征)

测试方法:

* $this->user 是一个带有 Accounts 的 User 实例模型,$this->account 是一个与所选用户相关的 Account 实例

但是当我运行测试时,我在 $account_id 测试返回上得到空值

当我通过邮递员提出相同的请求时,值就在那里 邮递员返回

0 投票
1 回答
1655 浏览

laravel - 尚未设置外观根

  • 拉拉维尔 6.5
  • Laravel 浏览器套件 ^5.1

我正在为我正在构建的东西创建自己的包,其中一个导致了手头的问题:尚未设置外观根。当我运行测试时。

这是路线文件App\Game\routes\web.php

非常基本,这里没有什么应该突出的。那么我们如何注册这些:

同样没有什么疯狂的,如果我们将它添加到config/app.php并运行php artisan route:list我们会看到:

在此处输入图像描述

你可以看到上面的游戏路线。所以现在让我们运行我们的测试,确保没有任何问题......

web.php当它尝试创建路由时,这一切都是由该路由文件引起的: Route::get(....). 据我了解router,当应用程序启动测试时,应用程序容器中不存在。

我曾尝试调用setUp我的测试类,并将其称为父级。但我仍然得到错误。

我以前从未遇到过这种情况,互联网对我没有任何帮助。关于我为什么会收到此错误的任何想法?

0 投票
1 回答
585 浏览

php - Laravel 模拟多个 Guzzle 端点

我正在使用 Laravel 6 并尝试测试端点。端点向外部 API 发出 2 个请求(来自 mollie)。目前我像这样嘲笑它:

抽象基MollieEndpointTest

我所有的测试都从那个 ^ 抽象类扩展而来。我这样实现它:

这是有效的。但问题是当我需要在同一个 api 调用中模拟另一个请求时,我会得到相同的结果。

那么如何确保我可以模拟 2 个响应(而不是 1 个)并将其返回给特定的 url?

0 投票
0 回答
86 浏览

laravel - 通知假断言不适用于密码重置测试?

我试图为我的身份验证路线进行测试。对于密码重置路线,我试图在其中伪造 laravel 的通知模块并根据文档进行断言。这是我的测试文件

当我运行这个时,我得到了notification was not sent错误。

我的用户模型是这样的:

我无法弄清楚确切的问题是什么。