我一直在努力创建一个应该在运行任何 rspec 测试之前执行的登录功能。
我现在拥有的是:
def login
post "/session", { "session[username]" => "bjones" }
end
在我的 spec_helper.rb 文件中
然后,我在 requests 目录中的一个 spec.rb 文件中有以下内容。
require 'spec_helper'
describe "Sessions" do
describe "GET /dashboards" do
login
it "displays the dashboard" do
get dashboard_path
puts response.body
end
end
end
但是,当我尝试运行测试时,我得到:
undefined method `post' for #<Class:0x4f08828> (NoMethodError)
我对 Rails 很陌生,对测试和 rspec 完全陌生,所以也许我在这里缺少一些基本的东西。基本上,我要做的就是设置该会话变量,以便在运行测试时我将登录。也许不同的方法会更好?或者也许我需要将该登录功能放在不同的地方?
我遇到了这个很有用的答案,但它不适用于 rspec,所以我无法理解这样一个辅助函数的去向。