Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 水豚和Rails,为什么要使用“规范中的U内容给我”呢;您正在被重定向。”;?_Ruby On Rails 3_Rspec_Capybara - Fatal编程技术网

Ruby on rails 3 水豚和Rails,为什么要使用“规范中的U内容给我”呢;您正在被重定向。”;?

Ruby on rails 3 水豚和Rails,为什么要使用“规范中的U内容给我”呢;您正在被重定向。”;?,ruby-on-rails-3,rspec,capybara,Ruby On Rails 3,Rspec,Capybara,我正在Rspec中使用Capybara为rails应用程序编写集成测试。填写表单后,用户按submit 如果我运行测试,我会得到: 预计“You is”中会有“欢迎来到课程生成器”的内容 正在重定向。” 我正在尝试测试生成的页面内容,以下是测试: describe PagesController do describe "Quiz testing in chapter" do def page_view Capybara::Node::Simple.new(@res

我正在Rspec中使用Capybara为rails应用程序编写集成测试。填写表单后,用户按submit

如果我运行测试,我会得到:

预计“You is”中会有“欢迎来到课程生成器”的内容 正在重定向。”

我正在尝试测试生成的页面内容,以下是测试:

describe PagesController do

  describe "Quiz testing in chapter" do

    def page_view
       Capybara::Node::Simple.new(@response.body)
    end

    render_views
    login_student

    it "should fail if user chosen wrong answer" do
      page= create_quiz_page_with_two_choices_first_correct
      post :answer_quiz, :page_id=>page.id, :submitted_single_answer=>'2'
      page_view.should have_content("Welcome to course builder")

    end
  end
end
页面控制器中

def answer_quiz
 ...
 respond_to do |format|
   format.html { redirect_to page }
   format.json { head :ok }
 end
end
我刚开始使用水豚,所以我是不是遗漏了一些明显的东西?为什么我被重定向响应卡住了

谢谢


希望学生在进入
块之前进入

before(:each) do
  login_student
end
然而,即使这样也可能无法解决问题。使用Capybara时,建议通过访问每个示例的登录页面来实际登录,因此:

before(:each) do
  visit login_path # log in test user
end

it "should do something awesome" do
  visit "/awesome"
  page.should have_content("You rock!")
end

编写一个特殊的案例来处理测试环境中的登录也很有帮助,这样您就可以避免为测试登录创建用户。

我认为您应该阅读这样一个简单的教程:首先。谢谢,我尝试应用您的建议,但是,水豚似乎访问了登录路径并卡在那里,例如,它不会按登录键并输入,然后访问“/awesome”,如上面的示例所示,我如何使其实际登录?Capybara要求您告诉它要采取哪些步骤。例如,
访问登录路径
填写:密码,:使用=>“值”
单击按钮“登录”
。具体细节将取决于具体页面。我建议阅读水豚文件以了解更多信息: