Symfony 用于设备生成的自定义代理实体
因此,我的问题非常具体,但即使经过几个月的思考,我也不知道如何做到这一点。下面的主题将是关于Symfony、条令和在测试过程中生成夹具 我想在测试过程中生成固定装置。我们的目标是使用助手为每个测试提供一组非常特定的装置,而不牺牲可读性。这就是我的目标,所以我的想法是创建一个Symfony 用于设备生成的自定义代理实体,symfony,testing,doctrine-orm,Symfony,Testing,Doctrine Orm,因此,我的问题非常具体,但即使经过几个月的思考,我也不知道如何做到这一点。下面的主题将是关于Symfony、条令和在测试过程中生成夹具 我想在测试过程中生成固定装置。我们的目标是使用助手为每个测试提供一组非常特定的装置,而不牺牲可读性。这就是我的目标,所以我的想法是创建一个tests/Resources/EntityProxy,它是src/Entity文件夹的镜像,包含相同数量的同名类。每个EntityProxy都从其相关的实体扩展而来,使用自定义特征轻松填充属性 您猜对了,我只想在测试中使用E
tests/Resources/EntityProxy
,它是src/Entity
文件夹的镜像,包含相同数量的同名类。每个EntityProxy
都从其相关的实体扩展而来,使用自定义特征轻松填充属性
您猜对了,我只想在测试中使用EntityProxy
,并将其直接用于测试函数。这其中有一个主要问题,因为条令不承认实体代理
是一个实体,即使它是从真实的实体
延伸而来
有没有一种方法可以说是将实体代理
作为其扩展的实体
__
下面的代码是我想要的enEntityProxy
示例:
namespace Tests\Resources\EntityProxy;
类用户扩展App\Entity\User
{
使用固定世代特征;
公共函数static makeDefault():self
{
返回静态::生成([
'username'=>self::getFaker()->username,
'email'=>self::getFaker()->email,
...
]);
}
公共函数静态生成(数组$data=[]):self
{
$entity=static::makeDefault();
$entity=static::setValues($entity$data);
返回$entity;
}
}
并可用于以下测试:User::make(['name'=>'johnwick'])代码>您确定要这样使用它吗?为什么不通过反射来填充你的实体的领域呢?因为它失去了一些清晰性。我们测试的一个大问题是夹具的生成。如果我们有一个在每次测试中重置的公共数据库,那么添加一个fixture可能会导致其他测试失败。仅为每个测试添加所需的夹具似乎是最好的方法,但这会产生大量冗余,因此测试可读性较差。我想通过提供代理中的“生成”方法和“编辑”方法来改进fixture的生成,这些方法可以用作实际的实体。看一下-这看起来像你要找的,只是它跳过了代理部分这真是一个很酷的包,我完全忘记了它的存在,我也会将它集成到我的包中,谢谢@NicoHaase:)!尽管如此,我还是打开了问题的大门,因为我真的很想为非常特定的领域内容尝试这个实现