2

我在 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 调用。

4

2 回答 2

3

尝试:

xhr :get, :email

您的请求似乎没有考虑预期的响应类型。在 Rspec 中,如果您想模拟 AJAX (XHR) 请求,这是执行此操作的方法。

于 2012-11-19T21:15:39.890 回答
3

您的控制器构造为仅针对 JS 请求返回任何内容,并且您在测试中请求 HTML 响应。你应该有

get :email.js

在您的规格中。

于 2012-11-19T21:04:25.520 回答