Faker 名称生成重复可能吗?

Is Faker name generation duplication possible?

有人可以确认 Faker name generation 可以创建重名或部分名称吗?

如果我创建两个用户,是否有可能一个用户拥有与另一个用户的 last_name 相同的 first_name?我可以看到 identical names 用于男性名字和姓氏以及女性名字和姓氏。因此,例如,我可以让第一个用户使用 Carter Cole,第二个用户使用 Bailey Carter。

如果我创建两个用户,两个用户的名字和姓氏是否可能相同。比如 Daniel Fay 和 Daniel Fay?

我不是 100% 确定,但我想这种情况可能会发生。然而,faker 有避免这种情况的工具。你读过这个 paragraph 吗?

在您的方法调用前加上 unique。例如:

Faker::Name.unique.name # This will return a unique name every time it is called

如果从具有有限数量潜在值的生成器请求太多唯一值,则可能会引发 Faker::UniqueGenerator::RetryLimitExceeded 异常。可以清除已返回的唯一值的记录,例如在测试之间。

Faker::Name.unique.clear # Clears used values for Faker::Name Faker::UniqueGenerator.clear # Clears used values for all generators

如果您与生成的数据发生冲突(即使用具有随机和手动设置值的 FactoryBot),您还可以将一些已经使用的值提供给唯一生成器。

用法: Faker::<generator>.unique.exclude(method, arguments, list)

'azerty''wxcvbn' 添加到 6 个字符长度的字符串生成器 Faker::Lorem.unique.exclude :string, [6], %w[azerty wxcvbn]