ruby-on-rails - Rspec 中的动态期望

标签 ruby-on-rails ruby testing rspec tdd

我正在尝试通过 Rspec 期望测试动态 url 路径,如下所示:

describe 'registering a user' do
  context 'with valid data' do
    it 'confirms user registration' do
      visit '/users/new'
      fill_in 'Name here...', with: 'johnny bloggs'
      fill_in 'Your email here...', with: 'test1@test.com'
      click_button 'Notify me'
      expect(current_path).to eq '/users/@user.id'
      expect(page).to have_content "johhny"
      expect(page).not_to have_content "Sign up"
    end
  end
end

这是一个功能测试而不是模型单元测试,所以我想这种对象属性,@user.id,期望不应该在功能测试中。但是我想测试重定向到特定路径对于要检查的功能测试来说是有效的,我正在测试的功能的一个关键部分是操作重定向到特定于对象的显示页面?!

所以 a) 我应该如何正确地测试这个涉及动态属性的新路径的重定向和 b) 在这里做的正确的事情是否是测试“动态属性”如何才能测试动态内容在 rspec 测试中? .erb 也许?

先谢谢您的指教。

最佳答案

您可以使用纯字符串插值:

expect(current_path).to eq "/users/#{ User.last.id }"

或者路由助手:

expect(current_path).to eq user_path(User.last)

关于ruby-on-rails - Rspec 中的动态期望,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30429571/

相关文章:

ruby - 默认情况下所有方法都是公开的吗?

ruby - sinatra config.ru : what is the configure block for?

ruby - xcode 4.2 和选项卡不更新文件名; ruby 代码

testing - 在线库报告的错误

java - JUnit @Category 方法注释来覆盖类注释

mysql - Heroku 的 Rails 数据库特定查询

ruby-on-rails - Rails 自动加载不加载模块

android - 有没有人使用 Robotium 或 Calculon 来测试 Android 应用程序?

ruby-on-rails - Ruby/Rails - Active Record Db 迁移到 MySQL - 时间戳类型?

javascript - 简单的 javascript 在 Shopify 中不起作用