0
我一直在努力创建一个应该在任何rspec测试运行之前执行的登录函数。在每个rspec请求测试运行之前登录的独立帮助函数
我有现在的问题是:
def login
post "/session", { "session[username]" => "bjones" }
end
我spec_helper.rb文件
然后
,我中的请求目录我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)
我是相当新的导轨和全新的测试和RSpec所以也许有我丢失的东西在这里根本。基本上,我想要做的就是设置会话变量,以便在测试运行时我将登录。也许不同的方法会更好?或者,也许我需要将该登录功能放在不同的地方?
我碰到过this答案这是有用的,但它不是用于rspec,所以我无法理解这样的辅助函数会去哪里。
您是否在会话助手中定义了登录功能? – cdesrosiers
不,我只是假设我需要将它包含在我的spec_helper文件中。另外我的理解是,只有视图和控制器文件才能访问辅助函数。 – yiinewbie
我认为你的应用程序已经有一个登录功能,你只是试图执行一个单独的测试。在spec/support/utilities.rb(你必须创建这个文件和目录)中放置这样的助手方法对你的测试更好,它将被自动包含进去。但我认为这不会解决你遇到的错误。是否在“spec_helper”中的模块或类中定义了登录? – cdesrosiers