Ruby on rails 3 水豚和Rails,为什么要使用“规范中的U内容给我”呢;您正在被重定向。”;?
我正在Rspec中使用Capybara为rails应用程序编写集成测试。填写表单后,用户按submit 如果我运行测试,我会得到: 预计“You is”中会有“欢迎来到课程生成器”的内容 正在重定向。” 我正在尝试测试生成的页面内容,以下是测试: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
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要求您告诉它要采取哪些步骤。例如,访问登录路径
,填写:密码,:使用=>“值”
,单击按钮“登录”
。具体细节将取决于具体页面。我建议阅读水豚文件以了解更多信息: