【问题标题】:RSpec - testing with cancan viewsRSpec - 使用 cancan 视图进行测试
【发布时间】:2018-07-16 01:18:48
【问题描述】:

我有一个这样的简单测试:

require 'rails_helper'

RSpec.feature "Evaluating Questions" do

    before do
        puts "before"
        @john = FactoryBot.create(:admin_user)
        login_as(@john, :scope => :admin_user)
        FactoryBot.create(:question)
        QuestionStatus.create!(name: "Approved")
        visit questions_path
    end


    scenario "A user evaluates a question correctly" do
        puts "scenario"
        visit questions_path
        click_link "Evaluate"
        select('Approved', :from => 'revision_history_question_status_id')

        click_button "Create Revision history"
        expect(page).to have_content("Question was successfully reviewed")
    end


end

问题是“评估”链接仅在用户获得 cancan 许可时才会显示。但是我在工厂创建的那个用户有权限。但是,rspec 仍然找不到页面上的链接,所以我猜它没有被渲染。任何想法如何解决这个问题?谢谢

编辑:

Rspec 错误信息: 失败/错误:click_link“评估”

 Capybara::ElementNotFound:
   Unable to find visible link "Evaluate"

【问题讨论】:

  • @MarkMerritt 完成
  • 您可以使用RSpec.feature "Evaluating Questions", js: true do 在浏览器中运行测试以查看链接是否确定不可见?

标签: ruby-on-rails rspec cancan


【解决方案1】:

发现问题所在:我应该使用:scope => :user。之前,它无法登录,这就是它找不到链接的原因

【讨论】:

    猜你喜欢
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多