php - 如何在 Symfony 中扩展 WebTestCase
问题描述
我想在 symfony 中编写功能测试,但我无法覆盖createKernel
WebTestCase 的方法。我们的应用程序通过使用这样的 HttpKernel 集成了 symfony:
$kernel = new HttpKernel($dispatcher, $controllerResolver, new
RequestStack(), $argumentResolver);
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);
我尝试从被覆盖的createKernel
方法中返回这个内核,但它没有一些getContainer()
稍后会出错的方法(如 )。如何为 WebTestCase 创建自己的内核?
解决方案
请参阅文档测试(symfony 文档)
要运行您的功能测试,WebTestCase 类需要知道哪个是应用程序内核来引导它。内核类通常定义在 KERNEL_CLASS 环境变量中(包含在 Symfony 提供的默认 phpunit.xml.dist 文件中):
<?xml version="1.0" charset="utf-8" ?>
<phpunit>
<php>
<!-- the value is the FQCN of the application kernel -->
<env name="KERNEL_CLASS" value="App\Kernel" />
</php>
<!-- ... -->
</phpunit>
此外,您的 bin 目录中有 phpunit 可运行,而 app 目录中有 phpunit.xml.dist 文件。通常您可以通过以下方式运行测试bin/phpunit -c app path_to_the_tests
推荐阅读
- linux - 有哪些创造性的方法可以使内核恐慌?另外,有什么方法可以导致一段内核代码恐慌?
- c++ - 如何将一个类对象的变量与另一个类的对象进行比较?
- java - 运行 github 中给出的示例文件时出现 CloudsimSDN 错误
- oracle - 是否可以为现有域创建新的 RCU 模式?
- push-notification - 您能否在多个服务器(Dev、UAT、LIVE)上刷新 APNS 服务器令牌
- python - 使用richDEM计算数字高程模型中的坡度
- powershell - 将 csv 文件作为新工作表附加到现有的 excel
- java - 春季数据可分页,选择不同的一列
- flutter - 图像未显示在 vs 代码中的 flutter.dart 中
- java - 为什么 `Set.of()` 的实现方式与 `Collections.emptySet()` 不同?