Ruby on rails http响应的shoulda、rspec、guard、spork问题
你好,谢谢你的耐心! 我的rails应用程序使用rspec和shoulda的组合来运行测试。这些测试是自动进行的,没有人看管,也没有人看管。我的一个控制器测试看起来像 它{应该以(:success)回应} 当运行测试时,我得到 预计响应为200,但为301 通过浏览手动测试&wget一切正常,页面正确响应,状态代码为200。由于我对rails测试非常陌生,可能我不了解测试目前是如何运行的。它们是如何实施的?环境“测试”的目的是什么?是否有某种Web服务器在后台运行以运行测试?显然存在某种非通缉性重定向。 提前谢谢 编辑:更多来源 控制器:Ruby on rails http响应的shoulda、rspec、guard、spork问题,ruby-on-rails,testing,rspec,shoulda,Ruby On Rails,Testing,Rspec,Shoulda,你好,谢谢你的耐心! 我的rails应用程序使用rspec和shoulda的组合来运行测试。这些测试是自动进行的,没有人看管,也没有人看管。我的一个控制器测试看起来像 它{应该以(:success)回应} 当运行测试时,我得到 预计响应为200,但为301 通过浏览手动测试&wget一切正常,页面正确响应,状态代码为200。由于我对rails测试非常陌生,可能我不了解测试目前是如何运行的。它们是如何实施的?环境“测试”的目的是什么?是否有某种Web服务器在后台运行以运行测试?显然存在某种非通缉性
class PlansController < ApplicationController
def index
@plans=Plan.all
end
... more methods ...
end
您在
get:index
上下文的before块中缺少一个:each
,因此您永远不会调用index操作
更新如下:
context " get :index" do
before(:each) do
get :index
end
it { should respond_with(:success) }
end
你没有任何重定向吗?目前没有。routes.rb只是声明
resources:plan
,并有一个别名,如match'/pricing'=>“plan#index'
。我之前提到的测试是在PlansController类的方法上进行的。重定向通常发生在Controller中,因为在执行此操作之前,您有一些身份验证筛选器,并且您没有在specediting问题上定义它以显示更多代码,无论如何,我的控制器中没有任何重定向atm。before do
与rspec中的before:each do
相同。只是为了方便。
context " get :index" do
before(:each) do
get :index
end
it { should respond_with(:success) }
end