Ruby on rails 使用FriendlyID获取rails测试以反映实际行为

Ruby on rails 使用FriendlyID获取rails测试以反映实际行为,ruby-on-rails,friendly-id,Ruby On Rails,Friendly Id,下面的类只有一个强制关系和一个验证 class Shop < ApplicationRecord extend FriendlyId friendly_id :name, use: :slugged validates :name, presence: true, uniqueness: true end 将以失败告终 ShopsControllerTest#test_should_update_shop [/[...]/test/controllers/shops_con

下面的类只有一个强制关系和一个验证

class Shop < ApplicationRecord
  extend FriendlyId
  friendly_id :name, use: :slugged

  validates :name, presence: true, uniqueness: true
end
将以失败告终

ShopsControllerTest#test_should_update_shop [/[...]/test/controllers/shops_controller_test.rb:48]:
Expected response to be a redirect to <http://www.example.com/shops/39503638> but was a redirect to <http://www.example.com/shops/bare-minimumshh>.
Expected "http://www.example.com/shops/39503638" to be === "http://www.example.com/shops/bare-minimumshh".
而测试在设置中调用

@shop = shops(:bare_minimum)

如何编写此测试以考虑(新)slug?

如果您尝试调用
@shop。在测试中,to_param
是否按预期返回slug或id
assert_equal@shop.name+“shh”、@shop.to_param
@shop.to_param
重新运行测试操作分配的ID。它是否可以绑定到夹具?如果手动创建一个商店实例,您会得到同样的行为吗?”断言等于“foo”,Shop.create!(名字:“foo”)。为了让param暖和起来。。。不,该断言表明已通过测试。在修改夹具时,投诉的另一个故障
找不到“id”=最小间隙的车间
。这就指出了问题所在。问题出在操作前的
:set\u shop,仅:[编辑,:更新,:销毁]
从操作前删除更新,并在所述控制器操作中设置
@shop=shop.friendly.find(参数[:id])
,解决了故障。热。如果您尝试在测试中调用
@shop.to_param
,它是否按预期返回slug或id
assert_equal@shop.name+“shh”、@shop.to_param
@shop.to_param
重新运行测试操作分配的ID。它是否可以绑定到夹具?如果手动创建一个商店实例,您会得到同样的行为吗?”断言等于“foo”,Shop.create!(名字:“foo”)。为了让param暖和起来。。。不,该断言表明已通过测试。在修改夹具时,投诉的另一个故障
找不到“id”=最小间隙的车间
。这就指出了问题所在。问题出在操作前的
:set\u shop,仅:[编辑,:更新,:销毁]
从操作前删除更新,并在所述控制器操作中设置
@shop=shop.friendly.find(参数[:id])
,解决了故障。热。
@shop = Shop.friendly.find(params[:id])
@shop = shops(:bare_minimum)