问题标签 [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 回答
202 浏览

php - 如何在 Laravel 项目中为我自己的包运行 php 测试?

我有自己的 Laravel 包,我希望能够为它编写和创建测试。

我的项目安装在我的项目中的以下目录中ROOT/CompayName/package-name。我的测试位于,ROOT/CompanyName/package-name/tests而代码位于 ROOT/CompanyName/package-name/src.

composer.json文件中,我像这样自动加载我的测试

phpunit.xml此外,我在文件中添加了以下内容

然后我创建以下测试

但是,当我从命令行运行时phpunit,我的测试没有被触发!

如何正确触发我的包中的测试。

0 投票
1 回答
27 浏览

laravel - 奇怪的 assertJSON 行为

我想测试一个 AJAX 响应是否包含我期望的数组。
到目前为止一切都很好,不是很多。
这就是我的数组的样子:

当我运行测试时:

该数组看起来确实像那样,但无论如何它都失败了。为什么?因为实际上它期望数组两次。
在比较窗口中,我看到它期望这样:

但是得到了上面提到的数组(这也是我所期望的)。

当我运行$request->assertJSON([]);测试成功时,但这不可能是它应该工作的方式,是吗?

0 投票
1 回答
387 浏览

laravel - Test.Error 预期状态码 200 但收到 200。如何解决?

我为 CompanyController 创建了测试,

但我有一个错误:

1) Tests\Feature\CompanyTest::testCompanyIndex 预期状态码 200 但收到 200。未能断言 false 为真。

在 CompanyController 我有中间件auth:webCompanyController@index返回所有公司。

0 投票
1 回答
921 浏览

laravel - 在 laravel 中每次测试后重置 Redis 数据库

在我的 laravel 应用程序中,我使用 Redis 来存储一些缓存(例如,要在首页上显示的项目列表)。我总是通过 Facade 访问 Redis Illuminate\Support\Facades\Redis:.

我创建了一个不同的 Redis 数据库进行测试(1而不是0),但我还需要在每次测试后重置它,以便测试永远不会从之前的测试中获取数据。

有没有一种有效的方法来创建这种行为?

我尝试使用@before注释来实现它:

但我得到了错误:Cannot use 'FLUSHDB' over clusters of connections.

有任何想法吗?

0 投票
0 回答
413 浏览

php - 在 Laravel 5.8 中,如何在包中定义模型工厂?

我似乎找不到任何关于如何实现这一目标的好的和最新的资源。

我基本上想从我的包中做到这一点:

这可以做到吗?

谢谢,

0 投票
1 回答
2032 浏览

laravel - Laravel Telescope 不记录来自 TestCase 的请求

出于调试目的,我想让 Telescope 记录来自测试套件的任何请求。望远镜目前没有,我不知道为什么。

我启用了望远镜phpunit.xml

这是我的功能测试

当我打开望远镜时,没有/api/vehicle保存的条目。

0 投票
1 回答
237 浏览

laravel - 当我在终端中运行命令 phpunit 时,我收到了 php 警告

当我在终端控制台中运行phpunit命令时,我收到了 Php 警告。

我试过跑步vendor/bin/phpunit,但结果是一样的。

这是一个错误:

PHP 警告:“继续”定位开关相当于“中断”。您的意思是使用“继续 2”吗?在 D:\xampp\php\pear\PHPUnit\TextUI\Command.php 中的第 277 行警告:“继续”定位开关等同于“中断”。您的意思是使用“继续 2”吗?在 D:\xampp\php\pear\PHPUnit\TextUI\Command.php 中的第 277 行 PHP 警告:“继续”定位开关等同于“中断”。您的意思是使用“继续 2”吗?在 D:\xampp\php\pear\PHPUnit\TextUI\Command.php 第 285 行

警告:“继续”定位开关相当于“中断”。您的意思是使用“继续 2”吗?在 D:\xampp\php\pear\PHPUnit\TextUI\Command.php 中的第 285 PHPUnit 3.7.21 行,作者 Sebastian Bergmann。

0 投票
2 回答
60 浏览

laravel - 如何在两个模型之间的关系中通过 phpunit 成功执行测试?

我是 Laravel 的新手。我有 2 表产品和产品。另外,我有 2 家工厂 ProductionFactory 和 ProductFactory。我想通过 phpunit 测试它们。他们的连接是通过 production_id。

错误是 ErrorException:未定义的变量:生产。

我不明白。

提前致谢。

这是一个代码。

生产工厂.php

产品工厂.php

生产测试.php

产品测试.php

0 投票
1 回答
457 浏览

laravel - Laravel 测试 API 端点 - 缺少 POST 参数

我有一个要测试的 API 端点,它接收一个 POST 有效负载。端点基本上调用Omnipay Sage Pay库来处理服务器通知。

我可以使用 Postman 客户端很好地发布到这个端点,但是当使用 Laravel phpunit 测试时,例如

Omnipay 库看不到帖子数据?

认为这是因为 Laravel 助手$this->post不使用 application/x-www-form-urlencoded POST 请求?我看了一下幕后$this->post,它似乎直接调用了控制器/方法,这是有道理的..

我最接近这项工作的是直接使用 Guzzle(见下文),但是这会将请求路由到“测试”会话之外并返回到我假设的本地应用程序中?这会破坏我的测试,因为我在 POST 调用之前通过工厂设置了一些测试数据。

我不太确定问题出在哪里,无论是在我的测试中还是在 Omnipay 库本身中?

0 投票
3 回答
452 浏览

laravel - Laravel 中间件共享变量视图在编写 HTTP 测试时不起作用

我们有以下中间件。我们知道中间件可以正常工作,因为在浏览器中测试应用程序正常工作。可悲的是,在编写 HTTP 测试用例时,刀片说中间件定义的变量不存在。

我们进行如下 PHPUnit 测试:

错误

任何意见,将不胜感激?

编辑

我必须使用View外观添加它并调用它的share方法使其工作,但我遇到了errors应该由\Illuminate\View\Middleware\ShareErrorsFromSession股票 laravel 中间件设置的变量的相同问题。

其他备注,我的中间件被调用Authenticate,但它与 Laravel 的基于密码的普通身份验证无关。

这里UserContract