Я не уверен на 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]