我有一个PurchaceFactory
,它的一个参数是User
实体对象。
我想创建一个用户:
class PurchaceFactoryTest extends TestCase
{
public function testCreate()
{
$user = new User();
$user->setEmail('user1@email.com');
$user->setPassword('password');
$user->setRoles(["ROLE_USER", "ROLE_BUY"]);
$jsonEncoder = new JsonEncoder();
$artworkData = [
"ID" => 129884,
"title" => "Starry Night and the Astronauts",
"author" => "Alma Thomas",
"thumbnail" => [
"lqip" => "data:image/gif;base64,somebase64data",
"width" => 800,
"height" => 600,
"alt_text" => "Al text"
]
];
$purchaceFactory = new PurchaceFactory($jsonEncoder);
$purchace = $purchaceFactory->create($user, $artworkData);
//assertions
//...
}
}
问题是,我不能设置用户的id
,因为当我创建bin/console make:user
时,实体没有setId
。purchaseFactory
使用$user
属性。
如何用id
模拟User
对象?
我不想修改UserEntity
并添加setId
,因为id应该是不可变的。
1条答案
按热度按时间ltqd579y1#
尝试创建TestUser实体并使用User实体扩展它。然后停用在属性id中设置id的策略。