0

我想编写一个端到端的测试,在该过程的某个阶段将搜索具有特定 id 的模型,并根据它更新一些数据。为了避免在生产环境中运行时触及任何真实数据,我知道我们可以使用 Laravel Faker 创建模型的假实例,然后对其运行操作,即

在测试开始时,我可以运行:

$someModel = factory(SomeModel::class)->create();

据我了解,这将在数据库中创建一个具有自己唯一 ID 的实例。完成测试后,我有两个关于该实例的问题...

  1. 当使用 parent::teardown() 或类似的东西时,该条目是否仍然存在或被设计自动删除?
  2. 如果我必须手动删除它,ids 中是否会有一个跳过的条目,因为我创建的被分配 id 20 的实例不再存在,所以任何查看表格的人都会看到 ids: ...18, 19, 21 ... 等等?

对我来说,我不太确定是否可以将虚拟数据保存在生产数据库中,这完全可以吗?

4

1 回答 1

0

要重申@miken32 所说的内容,请尽量避免在生产环境中运行测试,但如果这样做,则必须使用事务来确保测试中不会保留任何内容。

于 2021-01-08T21:29:42.697 回答