Тестирование вялых характеристик (рельсы) - PullRequest
0 голосов
/ 16 мая 2018

У меня проблемы с тестированием характеристики параметризации.В основном то, что я пытаюсь сделать, это то, что я имею ниже.

'Murtis Smith'.parameterize
'murtis-smith'

Только в этом случае я использую этот драгоценный камень здесь , и поэтому мне разрешено создавать его как проверку.Добавляя 'slug true', он заботится о работе 'параметризации'.

validates :name, allow_nil: true, slug: true

Мой вопрос: у меня проблемы с настройкой этой модели в качестве спецификации.То, что я имею ниже, - это мой первый подход.Тест по-прежнему не проходит и просто возвращает «Муртис Смит», а не то, что я надеялся стать «Муртис Смит».Кто-нибудь знает, как я могу это проверить?(или лучше не использовать этот драгоценный камень?)

it 'becomes slugish' do
  player.name = "murtis smith"
  player.save

  expect(player.name).to eq 'murtis-smith'
end

1 Ответ

0 голосов
/ 16 мая 2018

Тест по-прежнему не проходит и просто возвращает «Муртис Смит», а не то, что я надеялся стать «Муртис Смит».

Почему вы надеетесь, что имя станет "Муртис-Смит"?Это валидатор, а не конвертер / преобразователь.Работает как надо.

Исходный код :

  def validate_each(record, attribute, value)
    if value.nil?
      record.errors.add(attribute, :blank)
    elsif value != value.parameterize
      record.errors.add(attribute)
    end
  end

Кроме того, в вашей спецификации есть скрытый сбой.Попробуйте player.save!, и вы увидите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...