我的控制器的 rspec 测试返回 nil(+工厂女孩)

2023-12-10

我正在用 rspec 和 Factory Girl 在 Rails 上学习测试,但我无法让它们工作。

我的用户控制器如下所示:

class UsersController < ApplicationController
  def index
    @users = User.all.order(:first_name)
  end
end

和测试:

require 'spec_helper'

describe UsersController do

before(:each) do
    @user1 = FactoryGirl.create(:user, first_name: "B", last_name: "B", uid: "b")
    @user2 = FactoryGirl.create(:user, first_name: "A", last_name: "A", uid: "a")
end

describe "GET index" do     
    it "sets a list of users sorted by first name" do
        get :index
        assigns(:users).should == [@user2, @user1]
    end
end
end

但测试返回以下结果:

UsersController GET index sets a list of users sorted by first name
Failure/Error: assigns(:users).should == [@user2, @user1]
expected: [#<User id: nil, email: nil, first_name: "A", last_name: "A", uid: "a", active: true, admin: false, created_at: nil, updated_at: nil, reset_date: nil>, #<User id: nil, email: nil, first_name: "B", last_name: "B", uid: "b", active: true, admin: false, created_at: nil, updated_at: nil, reset_date: nil>]
got: nil (using ==)
# ./spec/controllers/users_controller_spec.rb:13:in `block (3 levels) in <top (required)>'

你知道我做错了什么吗?

Cheers!

这是“耙子路线”:

      Prefix Verb   URI Pattern                        Controller#Action
        root GET    /                                  meetings#index
    meetings GET    /meetings(.:format)                meetings#index
       login GET    /login(.:format)                   sessions#new
      logout GET    /logout(.:format)                  sessions#destroy
             POST   /auth/:provider/callback(.:format) sessions#create
auth_failure GET    /auth/failure(.:format)            sessions#failure
       users GET    /users(.:format)                   users#index
             POST   /users(.:format)                   users#create
    new_user GET    /users/new(.:format)               users#new
   edit_user GET    /users/:id/edit(.:format)          users#edit
        user GET    /users/:id(.:format)               users#show
             PATCH  /users/:id(.:format)               users#update
             PUT    /users/:id(.:format)               users#update
             DELETE /users/:id(.:format)               users#destroy

正如Jvnill上面所说,使用create。另一种选择是在声明它们后使用@user1.save。

另外,就路由而言,请检查路由文件中的资源。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我的控制器的 rspec 测试返回 nil(+工厂女孩) 的相关文章

随机推荐

  • 如何在 Swift 3.0 中使用 Alamofire 解析 JSON,无需任何第三方库

    这里我想通过url解析JSON 这是 url 上可用的实际 JSON 数据 所以我需要解析它并使用 Alamofire 在我的应用程序中读取 但我做不到 我的 url 中的 JSON 数据 main date 2017 01 11 USDA
  • 将 JSON 数据解析为 Excel 工作表

    我正在尝试使用以下代码将 JSON 数据作为表格提取到 Excel 工作表中 Sub test Dim httpObject As Object Set httpObject CreateObject MSXML2 XMLHTTP sURL
  • 如何在按钮单击时调用小部件的 onUpdate 方法?

    基本上 我有一个简单的应用程序小部件 它显示文件中的值并每 24 小时更新一次 它工作正常 但后来我想将刷新按钮添加到我的小部件中 并且每次单击该按钮时我想调用 onUpdate 我一直在寻找一些答案 但它们似乎与我想做的事情不符 应用程序
  • Android SQLite 更新/插入

    我想要UPDATE我的桌子上有一排 WHERE 键 最后选择的如果具有该键的行不存在 我想要INSERT it 我可以得到UPDATE如果该行已经存在 则可以工作 但不会INSERT如果丢失 我已经尝试过这些 第一个正确更新 但不插入 St
  • Elmah 无法使用 ASP.NET 网站

    我尝试在我的 asp net 网站上使用 elmah 但每当我尝试访问http localhost 端口 elmah axd我得到资源未找到异常 我的 web config 如下
  • Git Config 仅排除一个分支的文件

    我想在我的公共分支中排除一个名为 config dbconfig js 的文件 我用它推送到 github 但仍然能够从 master 推送到我的 noester com git 存储库以推送到生产环境 我将配置文件更改为 core rep
  • Typescript 给出“找不到模块‘xmlhttprequest’的声明文件。”

    Using import XMLHttpRequest from xmlhttprequest 在 Node 上 当我使用以下命令进行编译时 出现以下错误tsc index ts 4 col 32 错误 7016 QF 可用 找不到模块 的
  • JVM 缺少 Rhino

    我有一个使用 ScriptEngine 处理一些 javascript 的项目 并且在我的机器上运行良好 但是当我将项目的 jar 发送到服务器时 我发现服务器的 JVM 没有内置 Rhino 当该代码调用 new ScriptEngine
  • 发送至:网络无法访问

    我有两台机器正在测试我的代码 一台工作正常 另一台我遇到了一些问题 我不知道为什么会这样 我正在使用一个对象 C 作为我项目的网络部分 在服务器端 我这样做 为了清楚起见 删除了错误检查 res getaddrinfo NULL port
  • 在 Android 中完成父级和当前活动

    我有 3 项活动 活动 A 会导致活动 B 活动 B 又可以返回活动 A 或启动活动 C 但是 如果我在活动 C 中按返回 应用程序应该关闭 总结 活动 A 启动活动 B 紧迫Back活动 B 应该导致 A 活动 B 开始活动 C 紧迫Ba
  • 使用星号 * 量词的奇怪结果

    我正在尝试在一个简单的字符串上练习星号 量词 但是虽然我只有两个字母 但结果包含第三个匹配项 结果出来了 array 1 0 gt array 3 0 gt string 1 a 1 gt string 0 2 gt string 0 据我
  • 如何在不同的系统文化中转换日期时间?

    我需要转换DateTime不同文化格式中的值 无论系统中设置如何 没有选择任何特定的时区进行转换 任何区域性格式都使用转换日期时间值 DateTimeFormatInfo ukDtfi new CultureInfo CultureInfo
  • MFMailComposeViewController 和隐私 - 隐藏“收件人:”字段?

    我正在创建我的第二个 iPhone 应用程序 并且我已经使用 MFMailComposeViewController 包含了一个反馈表单 这可以正常显示和工作 但我不确定是否希望所有用户都能看到我的电子邮件地址 有没有办法将 to 字段设置
  • CSS - 渐变文本阴影

    I want to make a gradient text shadow like this Is it possible to do that with CSS or and Javascript Thanks for help 你可以
  • 如何在Asp.Net MVC中导出到Excel?

    SCRIPT function PostExportValues meter id range type id start date end date returnUrl var meter meter selection val 0 aj
  • 在 OpenGL 着色器的 main 之外进行计算是否合理?

    我有一些类似于以下的顶点着色器代码 这是一个简化的示例 attribute vec2 aPosition attribute vec4 aColor varying lowp vec4 vColor uniform vec4 uViewpo
  • 从 Ada 调用 scanf

    如何从 Ada 调用 scanf 也就是说 大概有一个适当的 pragma import 声明 但是声明会是什么样子呢 我感兴趣的是如何从 Ada 调用更难以驾驭的 C 函数 而不是如何解析字符串本身 所以我不是在寻找纯粹的 Ada 解决方
  • 使用 jQuery 更改依赖于滚动位置的类

    我有一个单页网站 有固定的浮动导航 我希望能够通过向相关导航标签添加一类 on 来突出显示用户所在的部分 当用户不再位于该部分时 需要删除此类 并且新的当前部分需要反映在导航中 这无法通过点击功能来完成 因为用户仍然可以上下滚动页面 我知道
  • 确定Word单元格是否合并

    我需要以编程方式在 Word 2010 表中添加和删除行 不幸的是 表的标题包含合并的单元格 水平和垂直合并 使用 Row Add 和 Row Delete 方法时这会导致错误 我已经测试并发现我可以以编程方式删除合并的单元格 Cell S
  • 我的控制器的 rspec 测试返回 nil(+工厂女孩)

    我正在用 rspec 和 Factory Girl 在 Rails 上学习测试 但我无法让它们工作 我的用户控制器如下所示 class UsersController lt ApplicationController def index u