phpunit 相关问题

PHPUnit是面向程序员的PHP测试框架。它是单元测试框架的xUnit体系结构的一个实例。

[auth:sanctum]中间件不应该拒绝只有Web身份验证的请求吗?

我的测试意外失败,我想知道我是否遗漏了一些明显的东西。基本上,我想测试 API 端点根据常见情况返回适当的响应

回答 1 投票 0

如何在 ZF3 应用程序的功能 PHPUnit 测试中关闭数据库连接并减少其数量?

几年前,我已经在 StackOverflow 上创建了一个非常相似甚至几乎相同的问题。我得到了非常详细的答案,但它们并没有解决我的问题。现在,问题是...

回答 1 投票 0

适用于 VScode 的 PHPUnit 测试资源管理器插件

我是来自 PHPStorm 的 VScode 新手,只是因为 Github Copilot 聊天比 PHPStorm 更好。我在为 VSCode 设置 PHPUnit 测试资源管理器时遇到问题。我总是收到这个恼人的错误: ❌ 合作...

回答 1 投票 0

如何在 Laravel 中测试文件上传

我正在尝试测试上传 API,但每次都失败: 测试代码: $JSONResponse = $this->call('POST', '/upload', [], [], [ '照片' => new UploadedFile(base_path('public/uploads/test...

回答 5 投票 0

Symfony 禁用 ApiPlatform ApiTestCase 中的异常输出

我正在尝试使用 ApiPlatform\Symfony\Bundle\Test\ApiTestCase 在 php Symfony 框架中为控制器编写 API 测试,但是当我在控制器中抛出异常(违反约束)时,我...

回答 1 投票 0

CakePHP:在 shell 上为表编写测试

我正在为 CakePHP 编写一个导入/导出数据库的插件。这个插件有一个 shell,它的 index() 方法列出了已经导出的数据库: 公共函数索引() { //获取所有la文件 ...

回答 2 投票 0

为什么使用 php-cli 运行一段代码时会抛出警告,但使用 PHPUnit 运行完全相同的代码时不会抛出警告?

我有一些代码,我使用 php cli 和 phpunit 通过普通文件运行。 让我困惑的是,代码在执行过程中应该抛出警告,但在 PHPUnit 中却从未抛出警告。 ...

回答 1 投票 0

laravel 和 phpunit:找不到驱动程序(SQL:PRAGMAforeign_keys = ON;)

我已经使用 phpunit 运行了我的 laravel 应用程序。 一切都很好,直到在某个时候我再次运行测试时出现此错误。 Illuminate\Database\QueryException:找不到驱动程序(SQL:PR...

回答 11 投票 0

如何在 phpunit 中运行来自数据提供者的一个特定数据

如果我想仅使用数据提供者提供的一个数据来运行测试,我该怎么做? 我尝试了该线程上的解决方案,但没有成功 无法在 PHPUnit 中使用数据提供程序运行单个测试

回答 3 投票 0

phpunit 测试完成后如何运行脚本

我可以在所有 PHPUnit 测试完成后自动运行 PHP 脚本吗? 我想在所有测试完成后报告一些非致命问题(即正确但次优的测试结果)。

回答 2 投票 0

如何测试 Symfony 独立包

我开发了一些捆绑包,即 https://github.com/975L/EmailBundle,我想为它们添加测试。因此,我创建了包含一个测试的文件 Tests/Service/EmailServiceTest.php。 我...

回答 2 投票 0

在 Laravel 中对控制器进行单元测试而不测试路由的最佳方法是什么

我读过很多关于使用 $this->call($destination, $parameters, 'GET'); 测试控制器的文档。但这似乎也依赖于正在设置的路线,并且知道正确的$destin...

回答 4 投票 0

Eclipse 和 PHPUnit:“无法解析导入 PHPUnit\Framework\TestCase”

我从 PHPUnit 开始,到目前为止运行良好。我刚刚遇到一个问题: Eclipse (Oxygen.3) 在这行告诉我: 使用 PHPUnit\Framework\TestCase; “导入 PHPUnit\Framework\TestCase ...

回答 2 投票 0

如何在 Laravel 中将令牌传递给受保护的路由(类中的方法)

我正在 Laravel 中编写 phpunit 测试。 我使用以下代码成功登录到应用程序: $response = $this->json('POST', '登录', [ 'user_name' => $用户名...

回答 1 投票 0

cakephp3.7 测试中 CSRF 令牌不匹配

测试/TestCase/Controller/FeedbackControllerTest.php:45 公共函数 testAdd() { $this->enableCsrfToken(); $this->enableSecurityToken(); $这个->会话([ '验证'=&g...

回答 2 投票 0

phpunit:重用数据提供者

我想针对整组文件的内容运行多个测试用例。我可以使用数据提供程序来加载我的文件,并使用相同的提供程序进行所有测试,如下所示: 类 mytest 扩展...

回答 1 投票 0

PHPUnit:以旧方式使用测试套件,无需框架和其他东西

我在我的项目中使用 PHPUnit 已经好几年了,而且我没有使用 Composer、XML、框架或类似工具。 我的开发过程涉及在辅助 Konsole 上运行的脚本...

回答 1 投票 0

如何在单元测试中模拟 s3 的存储故障?

我有一个将文件上传到 s3 的服务: 我的服务类 { 公共函数 uploadFile(SomeModel $m, UplaodFile $f) { $filename = md5(uniqid()).$file->getClientOriginalName(); $s...

回答 1 投票 0

如何使用 phpunit 正确创建类依赖的模拟?

我有一个服务类,其中直接创建了 TypeSaveLogRecord 对象。 类 TypeSaveLogService { 公共函数存储(字符串$type,字符串$smId):TypeSaveLogRecord { $lo...

回答 1 投票 0

对 Laravel 包进行单元测试时未找到配置类

我正在开发 Laravel (5.4) 包,并且正在尝试进行单元测试。我有这门课: 我正在开发 Laravel (5.4) 包,并且正在尝试进行单元测试。我有这门课: <?php namespace Sample; class Foo { public function getConfig() { $config = \Config::get('test'); return $config; } } 我有这个测试: <?php use PHPUnit\Framework\TestCase; use Sample\Foo; class FooTest extends TestCase { public function testGetConfig() { $foo = new Foo; $config = $foo->getConfig(); } } 当我执行 phpunit 时出现此错误: 错误:未找到“配置”类 我如何对这个课程进行单元测试? 谢谢你。 您应该扩展 PHPUnit\Framework\TestCase,而不是扩展 Tests\TestCase: <?php namespace Tests\Unit; // use PHPUnit\Framework\TestCase; use Tests\TestCase; use Sample\Foo; class FooTest extends TestCase { public function testGetConfig() { $foo = new Foo; $config = $foo->getConfig(); } } 此外,Config或其他 Laravel 外观可能无法在 @dataProvider 方法中工作,请参阅 Laravel 框架类在 PHPUnit 数据提供程序中不可用了解更多信息。 模拟代码中的依赖关系是一个很好的做法。在这种情况下,您依赖于外部类(Config)。通常我这样测试: // make sure the mock config facade receives the request and returns something Config::shouldReceive('get')->with('test')->once()->andReturn('bla'); // check if the value is returned by your getConfig(). $this->assertEquals('bla', $config); 显然,您需要在测试中导入 Config Facade。 但是:我会在实际代码的构造函数中注入 Config 类,而不是使用外观。但这就是我...:-) 类似这样的事情 class Foo { /** container for injection */ private $config; public function __construct(Config config) { $this->config = $config; } public function getConfig() { $config = $this->config->get('test'); return $config; } } 然后通过将模拟配置注入构造函数来测试它。 尝试像这样包含 use Illuminate\Support\Facades\Config; 我遇到了同样的问题,是的,答案有效,现在问题是,如果我开发一个包并使用pest来测试它怎么办? 我通过添加此条目解决了问题 uses( Tests\TestCase::class, )->in('Unit', 'Feature', '../packages/vendor/package-name/tests/Unit'); 到 测试/Pest.php 希望这会对某人有所帮助。

回答 4 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.