【问题标题】:Rails validation exclusion with routesRails 验证排除与路线
【发布时间】:2011-08-31 16:21:39
【问题描述】:

如果用户名等于第一个路由块之一,我想测试用户是否无效。 我现在在 rspec 中这样指定它:

it "is not valid with a excluded username" do
  `bundle exec rake routes`.scan(/\s\/(\w+)/).flatten.compact.uniq.each do |route|
    user.username = route
    user.should_not be_valid
  end
end

问题是,这会减慢我的规范,是否有更好的方法来规范是否每个第一个路线元素都被排除在外?

【问题讨论】:

    标签: ruby-on-rails ruby rspec rake rspec-rails


    【解决方案1】:

    减慢你的规范的是bundle exec rake routes,因为它再次加载了rails环境。为了防止这种情况,您可以从实际 rake 任务中提取显示路线的代码(可以在 rails github repo 中找到)。通过这些修改,您的规范可能看起来像这样:

    it "is not valid with a excluded username" do
      Rails.application.routes.routes.map(&:path).join("\n").scan(/\s\/(\w+)/).flatten.compact.uniq.each do |route|
        # blahblah
      end
    end
    

    【讨论】:

      猜你喜欢
      • 2013-08-24
      • 1970-01-01
      • 2017-11-30
      • 1970-01-01
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多