响应的Rspec测试应该成功失败

时间:2012-11-19 20:59:52

标签: ruby-on-rails ajax ruby-on-rails-3 rspec

我在rspec上运行此测试...

it 'get email is successful' do
  get :email
  response.should be_success
  response.should render_template('email')

控制器代码如下所示..

def email
  respond_to do |format|
     format.js 
  end
end

在我的终端上,我正带着....

3) PostsController checking to see if response for post email is successful
 Failure/Error: response.should be_success
   expected success? to return true, got false
 # ./spec/controllers/posts_controller_spec.rb:116:in `block (3 levels) in <top    
(required)>'

我在这里缺少什么来进行测试?它必须是明显的东西。我的观看文件标题为email.js.erb。此操作适用于AJAX调用。

2 个答案:

答案 0 :(得分:3)

您的控制器的结构只返回JS请求的任何内容,并且您在测试中请求HTML响应。你应该

get :email.js

在你的规范中。

答案 1 :(得分:3)

尝试:

xhr :get, :email

您的请求似乎没有考虑预期的响应类型。在Rspec中,如果要模拟AJAX(XHR)请求,可以使用此方法。