- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有谁知道如何模拟 Doctrine PersistentCollection?
当我尝试使用 PHPUnit 和 Mockery 直接模拟类时,我得到一个异常,内容如下:
Mockery\Exception: The class Doctrine\ORM\PersistentCollection is marked final a
$this -> collectionMock = \Mockery::mock('PersistentCollection, Traversable');
$this -> collectionMock -> shouldReceive('rewind');
$this -> collectionMock -> shouldReceive('valid') -> andReturn('true');
$this -> collectionMock -> shouldReceive('next');
$this -> collectionMock -> shouldReceive('current') ->andReturn();
Fatal error: Cannot redeclare Mockery_1670979900_PersistentCollection_Traversable::rewind()
in C:\zendProject\zf2\vendor\mockery\mockery\library\Mockery\Generator.php(129) :
eval()'d code on line 43
最佳答案
我似乎不可能模拟一个已被宣布为 final 的类。然而,可能会有一些希望。由于PersistentCollection
实现Doctrine\Common\Collections\Collection
和 Doctrine\Common\Collections\Selectable
,您可以使用 Mockery 来模拟实现这两个接口(interface)的对象。
Mockery::mock(
'Doctrine\Common\Collections\Collection, Doctrine\Common\Collections\Selectable'
);
Again, the primary purpose is to ensure the mock object inherits a specific type for type hinting. There is an exception in that classes marked final, or with methods marked final, cannot be mocked fully. In these cases a partial mock (explained later) must be utilised.
$mock = \Mockery::mock('alias:MyNamespace\MyClass');
关于php - 如何在 PHPUnit 中模拟 Doctrine PersistentCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20829791/
我的数据库中有一对多关系。 编辑、删除和添加 元素过去工作得很好。但是,经过一些更改(我无法全部跟踪它们)后,它不再起作用。 现在,当我获取具有一对多关系的对象时,我会得到一个持久集合来表示我的多方集
当您已经知道父实体的 id 并且还知道该实体实际上存在于数据库中时,有没有办法获取实体的 Collection 属性,无需触发数据库查询? 获取此类集合的最简单方法当然是使用 EntityManage
这是一个益智游戏! :D 有没有办法强制 Hibernate 加载实体的集合,而不先加载整个实体? 让我更好地解释一下。我有一个以这种方式注释的角色实体: @Entity(name="Role") @
我有一个函数可以获取今天所有的“网络旅游”。 我有一个像这样的自定义存储库: public function toursTodayByNetwork($network){ $todayStar
我在 Zend Framework 2 项目中使用 Doctrine 2 ORM。 我试图坚持多对多的关系。我遵循了描述的文档 here (许多)。 尝试持久化数据时:$em->persist($fo
我在两个表到第三个表之间有关系,并带有额外的行,如下所示 question /** @Entity */ class Illness { /** @Id @GeneratedValue @Column
据我了解,当您通过存储库查询数据库时,您将获得 PersistentCollection,而当您使用您的实体时,您将获得 ArrayCollection。 所以请考虑我的用户实体有一对多的自引用关系。
我有一对关联。它们是多对多的,我使用显式创建的实体来加入它们,这样我就可以获得有关关系的元数据。虽然它们是相同的,但一个有效,另一个无效。更糟糕的是,上周,它们都起作用了,从那以后我就再也没有碰过它们
我正在尝试创建一个用于创建用户的新装置。 这是 fixture : class UserFixtures extends Fixture implements DependentFixtureInte
有谁知道如何模拟 Doctrine PersistentCollection? 当我尝试使用 PHPUnit 和 Mockery 直接模拟类时,我得到一个异常,内容如下: Mockery\Except
我正在获取具有多对多关系的数据,我想定义一个自定义方法。是否有可能(以及如何)使用类似的东西: $hotel = $entityManager->getRepository('Hotels')->fi
我正在使用 symfony2,但无法在 twig 中获取相关实体。 所以我有我的主要实体,我们称它为 Post,它具有 OneToMany 关系: /** * @ORM\OneToMany(targ
我用 Symfony2 制作了一个 Web 应用程序,其中一个 User 有一个数组关联 ManytoMany 与实体 Mission。用户可以通过表单上传实体 $product,表单传递的数据之一是
我正在使用 Symfony 4.1 和 SonataAdminBundle 3.36。 当我在 ManyToMany 关系字段调用标签上设置 ModelType::class 时出现此错误: No e
我有一个上传文件,我想从那里显示数据库中的所有类别,但我一直收到 EntityType 错误,我不知道为什么以前工作。 这是错误:Cannot assign Doctrine\ORM\Persiste
我正在使用 Symfony 3.1 和 Doctrine 2.5。 我一如既往地设置了一个多对多关系: manyToMany: placeServices: t
我已将几个模型类中的代码从字段访问器更改为属性访问器,并且还从 List 更改为 Set,因为顺序并不重要。以下是我的实体类。 @Entity @Table(name = "TPYP_GAME") p
谁能告诉我如何配置 Symfony2/Doctrine 以从实体中的指定列为 PersistentCollection 中的对象编制索引? 例如假设我们有两个表;类别和产品,许多产品属于一个类别。当我
我正在构建一个应用程序,用户可以在其中编辑一些数据,然后会看到一个屏幕,用户可以在其中确认(并评论)他的编辑。 在确认表单中,我显示了对实体所做的更改。这适用于“正常”字段。下面是一些用于检查单个字段
我在标签和文章实体之间有多对多关系,插入效果很好,但编辑表单(editAction 函数)的创建不起作用。所有代码都在那里: Article.php created = $created; $
我是一名优秀的程序员,十分优秀!