Zenstruck铸造厂symfony api

dgtucam1  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(116)

我有一个关于如何使用的问题,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现在我使用而不保留在工厂中,并且在每次测试结束时删除所有内容)

gstyhher

gstyhher1#

刚刚找到一个解决方案,使用这个包https://github.com/dmaicher/doctrine-test-bundle。它为每个测试设置事务中的所有内容。

相关问题