【发布时间】:2021-02-15 17:00:23
【问题描述】:
我有一个在数据库上运行的命令,然后测试是否有任何公司有重复的名称,然后输出给用户以进行任何补救。
我想为每个测试做的是:
- 将数据库更改为规定的公司集,例如
10 companies with 5 of those having duplicate names或例如10 companies with 5 having null names - 运行该测试
通常,如果这是一个函数,我可以在注释中使用数据提供者来提供不同的数据进行测试,例如
* @dataProvider provideFoo
* @param $data
*/
public function testFooBar($data) {...
但是命令没有args/params,所以我想我每次都要更新数据库。
这可以通过固定装置来完成,还是我应该在每个测试中添加新公司,例如:
public function testFooBar($data) {
$company1 = (new Company())->setName('Company 1');
$this->entityManager->persist($company1);
$this->entityManager->flush();
$commandTester->execute([]);
// rest of test
}
我应该补充一下 - 数据库非常大,删除它并重置它需要几个小时。
** 编辑 ** 我发现了这个问题,它似乎帮助我建立了测试数据库,我将继续看看我是否可以在测试数据库启动时让夹具工作:How to setup a database for test environment in Symfony 4
【问题讨论】: