Faker Gem генерирует 2-3 буквенных строки - PullRequest
1 голос
/ 15 марта 2019

Камень Faker генерирует короткие бессмысленные строки вместо того, что описано.Например, Faker::Job.title генерирует "et".Если у меня есть функциональный тест, который ожидает, что не найдет сгенерированную Faker строку на странице, есть вероятность, что она потерпит неудачу, если строка «et».Конечно, это неожиданное поведение, поскольку ни у кого в мире нет названия должности "et".

Это мой код, последний раз, когда я проверял его, заголовок был, как и ожидалось, но роль и категория не были:

# frozen_string_literal: true

shared_context 'with signatory attributes' do
  let(:first_name)   { Faker::Name.first_name }
  let(:last_name)    { Faker::Name.last_name }
  let(:email)        { Faker::Internet.email }
  let(:title)        { Faker::Job.title }
  let(:mobile)       { Faker::Number.number(10) }
  let(:employee_num) { Faker::Number.number(10) }
  let(:role)         { Faker::Job.title }
  let(:category)     { Faker::Job.title }
end

Ответы [ 3 ]

1 голос
/ 15 марта 2019

Похоже, Faker не настроен для создания реалистичных названий заданий. Но это легко сделать ваши собственные случайные должности. Я бы просто попробовал ваш собственный массив, например:

let(:title) { %w[Admin Manager Engineer].sample }
0 голосов
/ 15 марта 2019

Вы можете использовать регулярное выражение с границами слов вместо короткой строки, но это еще не пуленепробиваемый.

let(:first_name)   { /\b#{Faker::Name.first_name}\b/ }

Но, возможно, лучше заглушить атрибут на самой модели и вызвать Error, если он вызывается.

0 голосов
/ 15 марта 2019

Похоже, что по какой-то причине он вытягивает струны из своего набора нитей Lorem Ipsum .Вы не против поделиться своим кодом?

...