You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RSpec控制器测试:MapsController的index动作测试报错求助

修复MapsController#index的RSpec测试错误

嘿,我一眼就看出问题所在啦——你对index动作的测试断言完全搞反了方向!

问题根源

一般来说,控制器的index动作是用来展示资源列表的,它的正常行为是渲染对应的视图模板,而不是重定向到自身的路径。你现在写的断言是期望响应重定向到maps_path,但这不符合index动作的默认逻辑,所以测试才会失败。

修正后的测试代码

把你的测试改成这样就对了:

require 'rails_helper'
RSpec.describe MapsController, type: :controller do
  describe 'GET #index' do
    it 'shows a list of all maps' do
      get :index
      # 断言响应成功(状态码200)
      expect(response).to have_http_status(:ok)
      # 断言渲染了index模板
      expect(response).to render_template(:index)
    end
  end
end

额外说明

如果你确实希望index动作执行重定向,那得先检查你的MapsController里的index方法是不是手动写了redirect_to maps_path——但这通常不符合RESTful设计的常规做法,index动作就是用来展示列表的,直接渲染视图才是正确的。

内容的提问来源于stack exchange,提问作者Trenton Tyler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:50:59