当前位置: 首页 > 知识库问答 >
问题:

Symfony:如何模拟服务(FormBuilder和路由器)

尉迟清野
2023-03-14

我编写了一个具有以下签名的处理程序:

public function __construct(
    Store $store,
    array $orders,
    FormFactory $formFactory,
    Router $router)
{

如何模拟FormFactory和路由器?

我尝试了以下几点:

$formFactory = $this->getMock('\Symfony\Component\Form\FormFactory')
$router = $this->getMock('\Symfony\Bundle\FrameworkBundle\Routing\Router')

但我收到以下错误:

AppBundle\Tests\Handler\SetUpHandlerTest::传递给Symfony\Bundle\FrameworkBundle\Routing\Router::\uu construct()的testConstructor参数1必须实现接口Symfony\Component\DependencyInjection\ContainerInterface,未给定,在/DevRoot/vendor/phpunit/phpunit mock objects/src/Framework/MockObject/Generator中调用。php位于第254行并已定义

ContainerInterface的接口似乎有问题。

我怎么能嘲笑这种服务?

共有2个答案

巫马安怡
2023-03-14

像FormFactoryInterface和UrlGeneratorInterface这样的接口更适合模拟。这意味着您只知道方法的签名,而不知道实现。

楚修为
2023-03-14

您需要显式地禁用构造函数。

$form工厂-

考虑到您的模拟扩展了初始对象,因此除非禁用构造函数,否则仍会期望依赖项。

 类似资料:
  • 我试图设置Symfony3代码库与FOS REST捆绑和我最终得到没有路由发现错误 AppBundle\Resources\config\api路由。yml app\config\routing.yml 控制器 我想集成rest api路由的版本控制。你能告诉我这个错误是什么吗?我该如何纠正这个错误?

  • 路由服务 首先,要理解什么是 router,router是提供跨 subnet 的互联功能的。比如用户的内部网络中主机想要访问外部互联网的地址,就需要router来转发(因此,所有跟外部网络的流量都必须经过router)。目前router的实现是通过iptables进行的。 同样的,router服务也运行在自己的名字空间中,可以通过如下命令查看: $ sudo ip net exec qroute

  • 1. 简介 上一篇文章分析了集群容错的第一部分 — 服务目录 Directory。服务目录在刷新 Invoker 列表的过程中,会通过 Router 进行服务路由,筛选出符合路由规则的服务提供者。在详细分析服务路由的源码之前,先来介绍一下服务路由是什么。服务路由包含一条路由规则,路由规则决定了服务消费者的调用目标,即规定了服务消费者可调用哪些服务提供者。Dubbo 目前提供了三种服务路由实现,分别

  • 我想把react-route添加到我的应用程序中,我有下面的代码: 更新:已安装react-router 3.0.2并工作。

  • 问题内容: 我一直在思考,我对客户端和服务器之间的路由感到困惑。假设我在将请求发送回Web浏览器之前使用ReactJS进行服务器端渲染,并使用react- router作为客户端路由在页面之间切换而不刷新为SPA。 我想到的是: 路线如何解释?例如,从首页()到帖子页面()的请求 路由在服务器端还是客户端去哪里? 它如何知道如何处理? 问题答案: 注意,此答案涵盖了React Router版本0.

  • 我想到的是: 路线是如何解释的?例如,从主页()到帖子页()的请求 路由在服务器端还是客户端? 它如何知道它是如何处理的?