但使用 <""> 渲染" /> Rspec 控制器错误需要 <"index"> 但使用 <""> 渲染

Rspec 控制器错误需要 <"index"> 但使用 <""> 渲染

2024-04-27

作为测试新手,我正在努力让一些控制器测试通过。

以下控制器测试会引发错误:

   expecting <"index"> but rendering with <"">

我的控制器规格之一具有以下内容:

  require 'spec_helper'

  describe NasController do

  render_views
  login_user

  describe "GET #nas" do
      it "populates an array of devices" do
        @location = FactoryGirl.create(:location)
        @location.users << @current_user
        @nas = FactoryGirl.create(:nas, location_id: @location.id )      
        get :index
        assigns(:nas).should eq([@nas])
      end

      it "renders the :index view" do
        response.should render_template(:index)
      end
    end

在我的控制器宏中,我有这个:

  def login_user
    before(:each) do
      @request.env["devise.mapping"] = Devise.mappings[:user]
      @current_user = FactoryGirl.create(:user)
      @current_user.roles << Role.first
      sign_in @current_user
      User.current_user = @current_user
      @user = @current_user
      @ability = Ability.new(@current_user)
    end
  end

我正在使用 devise 和 cancan,并遵循了他们的指南。测试。我相信我的用户之前已登录并且能够查看索引操作。

我该怎么做才能通过测试?

-- 更新 1 --

控制器代码:

class NasController < ApplicationController
   before_filter :authenticate_user!
   load_and_authorize_resource

   respond_to :js

   def index

     if params[:location_id]
       ...
     else
     @nas = Nas.accessible_by(current_ability).page(params[:page]).order(sort_column + ' ' + sort_direction)

     respond_to do |format|
      format.html # show.html.erb
     end    
    end
  end

我想如果你改变

it "renders the :index view" do
  response.should render_template(:index)
end

to

it "renders the :index view" do
  get :index
  response.should render_template(:index)
end

它应该有效。

更新:试试这个

it "renders the :index view" do
  @location = FactoryGirl.create(:location)
  @location.users << @current_user
  @nas = FactoryGirl.create(:nas, location_id: @location.id ) 
  get :index
  response.should render_template(:index)
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Rspec 控制器错误需要 <"index"> 但使用 <""> 渲染 的相关文章

随机推荐

  • JavaScript:上传文件

    假设我在页面上有这个元素
  • 异步付款时如何防止购物车被更改

    下面的步骤说明了我在 Stripe 的 PaymentIntent 流程中遇到的问题 但是您可以对我研究过的其他支付网关提出类似的方法 其中成功支付的最终通知是从支付网关异步发送到商家站点的 客户将 10 件商品 A 添加到购物车 现在总计
  • 循环核心数据 NSSet 的正确语法

    每当我循环遍历核心数据关系 NSSet 时 我必须将集合转换为数组 for student in classroom students allObjects as Student print student name 或者我可以正常循环遍历
  • 如何将一个不相连的networkx图分成多个相互不相交但相连的图?

    我有一个networkx Graph代表一个对象graph https en wikipedia org wiki Graph discrete mathematics whose nodes https en wikipedia org
  • 符号的函数定义为 void:declare-function

    emacs 新手 OSX 上的 GNU Emacs 22 1 1 按照说明安装了邪恶 我得到 Symbol s function definition is void declare function emacs debug init gi
  • 通过检测 1.6 目标应用程序是否是 2.1 设备来显示动态壁纸?

    我们正在使用目标 SDK 1 6 构建 Android 应用程序 因此它将在 1 6 及更高版本的设备上运行 我们希望支持动态壁纸 我们知道动态壁纸仅限 2 1 有没有一种方法可以构建一个以 1 6 SDK 作为目标的应用程序 但检测它运行
  • 自定义 lint 规则,确保不调用特定方法

    我想确保在我的 Android 应用程序 Java 和 Kotlin 代码中 中不会调用特定类的特定方法 假设 我有一个名为Bar有两种方法 allowed and disallowed 这是代码 package com public cl
  • 无法查看数据选择器上的当前数据

    我创建了一个自定义数据选择器 其中显示 1950 年至 2016 年的年份 现在 当我第一次打开选择器时 我想设置当天的当前数据 但我无法将其设置为当前数据 第一次启动后 它的工作原理与我希望的完全一样 这是我迄今为止尝试过的代码 priv
  • Wireshark 解剖器 - 如何将 dissectortable:add(pattern, dissector) 与任何模式一起使用?

    我正在为 Wireshark 创建一个自定义解析器 我将我的解剖器添加到解剖器表中 就像这样 udp table DissectorTable get udp port udp table add 7777 my proto 然而 我的解析
  • NullValueHandling.Ignore 使用 JsonConverter::WriteJson

    我正在尝试执行自定义序列化 所有快乐路径代码都可以工作 但空值路径的行为并不像我想要的那样 我已将序列化器设置设置为NullValueHandling Ignore我的对象图的其他部分为空 并且不使用我的自定义序列化 已删除空值 看起来 N
  • R/d3heatmap/shiny - 有没有办法在 d3 工具提示中嵌入图像?

    我想在滚动单元格时在 d3 工具提示中嵌入图像 而不是默认的行 列 值数据 library shiny library d3heatmap ui lt shinyUI fluidPage titlePanel Old Faithful Ge
  • 将表格行换行到下一行

    table tr td testtesttesttest td td testtesttesttest td tr table 我想如果表格不适合屏幕 那么表格的第二个单元格将被转移到另一行 不是单元格中的文本 而是整个单元格 将单元格更改
  • SwiftUI 列表未使用 ForEach 正确更新

    我正在尝试使用带有两个 ForEach 循环的列表创建收藏夹功能 当我单击按钮时 该项目会移动到正确的部分 但按钮图像和功能不会更新 我是否遗漏或做错了什么 如果我导航到另一个视图并返回 列表最初会正确呈现 但如果我单击按钮 仍然会表现出相
  • 为什么我的 QGestureRecognizer 收不到触摸事件?

    上下文 我正在尝试创建一个类似推子的小部件 它可以在同一视图中具有多个实例 每个实例都可以由不同的手指同时控制 我想用Qt的手势识别系统 http qt project org doc qt 4 8 gestures overview ht
  • Ruby 将不可打印的字符转换为数字

    我有一个包含不可打印字符的字符串 我目前正在做的是将它们替换为波浪号 使用 string gsub print 但是 我实际上想将它们转换为整数值 我尝试了这个 但它总是输出0 string gsub print 1 to i 想法 字符串
  • 允许远程连接到不同域中的 SQL Server 的防火墙规则

    我最近安装了SQL Server Express 2014在一系列运行 Windows Server 2012 的计算机上 总共七台计算机 除 1 人外 其余所有人都住在同一个地方local domain company local 一台流
  • PHP 脚本语言还是编程语言? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我一直不明白为什么PHP被称为 脚本语言 而不是 编程语言 我将自己介绍为 PHP 程序员 是错误的吗 我应该是 PHP 脚本编写者 吗 编程语言和脚
  • IIS 7.5:对网站的初始请求永远不会加载

    当我第一次浏览我的网站时 互联网不断旋转 加载 如果我两秒钟后尝试再次加载它 一切都会正常 就好像它 睡着了 一样 我想这一定和 回收 有关 我已将 空闲超时 设置为 0 将回收 定期时间间隔 设置为 0 在浏览我的网站之前 我查看了 工作
  • excel vba 将 system.collections.hashmap 导入模块

    从我的内心微软 Excel 2010安装我已经打开了Visual Basic 编辑器 选项卡开发工具 gt Visual Basic 在 的里面Visual Basic 编辑器我右键单击进入项目窗口并创建了一个module 插入 gt 模块
  • Rspec 控制器错误需要 <"index"> 但使用 <""> 渲染

    作为测试新手 我正在努力让一些控制器测试通过 以下控制器测试会引发错误 expecting lt index gt but rendering with lt gt 我的控制器规格之一具有以下内容 require spec helper d