Возможно ли дублирование генерации имен Faker? - PullRequest
0 голосов
/ 16 января 2020

Может ли кто-нибудь подтвердить, что Faker генерация имен может создавать повторяющиеся имена или части имен?

Если я создаю двух пользователей, существует ли вероятность, что один пользователь будет иметь одно и то же имя как фамилия другого пользователя? Я вижу, что есть идентичные имена , используемые как для мужских имен и фамилий, так и для женских имен и фамилий. Итак, я мог бы иметь Carter Cole для первого пользователя и Bailey Carter для второго пользователя.

Если я создаю двух пользователей, возможно ли, что оба пользователя имеют одинаковые имя и фамилию. Например, Дэниел Фэй и Дэниэл Фэй?

1 Ответ

2 голосов
/ 16 января 2020

Я не уверен на 100%, но, полагаю, такая ситуация может произойти. Однако у мошенника есть инструмент, чтобы избежать такой ситуации. Вы читали этот параграф ?

Префикс вашего вызова метода с 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]

...