我有一个关于如何使用的问题,Zenstruck铸造测试api。
我想要的是能够使用zenstruck铸造来创建对象,能够使用api来检查它们。然后在我的测试结束时,我希望对象被销毁。
比如说我有个测试
public function listEventType(): void
{
// Init kernel browser
$this->init();
// create object
$factory = EventTypeFactory::new();
$eventType = $factory
->create(['name' => 'EventType 1']);
// ask api to send me back a list of eventType
$arrayResponse = $this->getJsonResponse('GET', 'api/eventType');
// Assert success and that there is only one
self::assertResponseIsSuccessful();
self::assertEquals(1, $arrayResponse['totalItems']);
self::assertCount(1, $arrayResponse['items']);
}
在我的测试结束时,我希望用工厂创建的对象被销毁,这样它就不会污染我的下一个测试。
我发现我可以使用zendstrike foundry而不使用Persisting,但随后API调用返回零个结果:
protected function initialize(): self
{
return $this
->withoutPersisting()
;
}
有没有人作为一个想法如何解决这个问题?
(For现在我使用而不保留在工厂中,并且在每次测试结束时删除所有内容)
1条答案
按热度按时间gstyhher1#
刚刚找到一个解决方案,使用这个包https://github.com/dmaicher/doctrine-test-bundle。它为每个测试设置事务中的所有内容。