Ruby on rails 测试缓动特性(轨道)

Ruby on rails 测试缓动特性(轨道),ruby-on-rails,rspec,Ruby On Rails,Rspec,我在测试“参数化”特性时遇到问题。基本上,我想做的是我下面所说的 'Murtis Smith'.parameterize 'murtis-smith' 只有在我使用的这个实例中,我才被允许创建它作为验证。通过添加“slug true”,它负责“参数化”工作 validates :name, allow_nil: true, slug: true 我的问题是,我很难将其设置为模型规范。下面是我的第一种方法。测试仍然失败,只返回“murtis smith”,而不是我希望的“murtis smit

我在测试“参数化”特性时遇到问题。基本上,我想做的是我下面所说的

'Murtis Smith'.parameterize
'murtis-smith'
只有在我使用的这个实例中,我才被允许创建它作为验证。通过添加“slug true”,它负责“参数化”工作

validates :name, allow_nil: true, slug: true
我的问题是,我很难将其设置为模型规范。下面是我的第一种方法。测试仍然失败,只返回“murtis smith”,而不是我希望的“murtis smith”。有人知道我如何测试这个吗?(还是最好避免使用此宝石?)

测试仍然失败,只返回“murtis smith”,而不是我希望的“murtis smith”

你为什么希望这个名字变成“默蒂斯·史密斯”?它是验证器,不是转换器/变压器。这是它应该做的

: 此外,您的规范中还有一个隐藏的故障。请尝试
player.save您将看到

测试仍然失败,只返回“murtis smith”,而不是我希望的“murtis smith”

你为什么希望这个名字变成“默蒂斯·史密斯”?它是验证器,不是转换器/变压器。这是它应该做的

:
此外,您的规范中还有一个隐藏的故障。请尝试
player.save你会看到的。

播放器。name
不是鼻涕虫。因此,使用
slug:true
player似乎没有意义。name
不是slug。因此,使用
slug:true
似乎没有意义。看起来像是“player.save!”这正是我所缺少的。谢谢你,好先生!看起来像是“球员,救命!”这正是我所缺少的。谢谢你,好先生!
it 'becomes slugish' do
  player.name = "murtis smith"
  player.save

  expect(player.name).to eq 'murtis-smith'
end
  def validate_each(record, attribute, value)
    if value.nil?
      record.errors.add(attribute, :blank)
    elsif value != value.parameterize
      record.errors.add(attribute)
    end
  end