未定义的方法“save”使测试在测试结束之前失败

2024-01-02

我正在关注 ruby​​.railstutorial.org。我遇到了一些麻烦,但我解决了它们。然而,现在我在谷歌上搜索了相当长的一段时间,检查了代码,我什至知道为什么测试失败,但不知道如何让它通过。

所以,问题来了。我有一个用户模型:

class User < ActiveRecord::Base
  attr_accessible :email, :name

  validates :name, presence: true, length: {maximum: 50 }
  VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
  validates :email, presence: true, format: { with: VALID_EMAIL_REGEX },
   uniqueness: { case_sensitive: false }
end

该问题与不区分大小写的唯一性检查有关。 测试在Rspec is:

before { @user = User.new(name: "Example User", email: "[email protected] /cdn-cgi/l/email-protection") }
subject { @user }

describe "when email address is already in use" do
    before do
        user_with_same_email = @user.dup
        user_with_same_email = @user.email.upcase
        user_with_same_email.save
    end

    it { should_not be_valid }
end

测试错误信息如下:

Failures:
1) User when email address is already in use 
    Failure/Error: user_with_same_email.save
    NoMethodError:
    undefined method `save' for "[email protected] /cdn-cgi/l/email-protection":String
# ./spec/models/user_spec.rb:53:in `block (3 levels) in <top (required)>'

所以模型甚至无法保存。我不知道该怎么办。但是,如果我们从测试中注释掉以下行:

user_with_same_email = @user.email.upcase

并删除{ 区分大小写:假 }部分模型代码,测试通过。 我想要测试做的是实际保存具有相同电子邮件地址的用户变量,然后报告它是无效。 非常感谢任何帮助/链接/建议。


这条线确实有问题

user_with_same_email = @user.email.upcase

user_with_same_email是一个对象,您需要设置电子邮件属性而不是对象本身。

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

未定义的方法“save”使测试在测试结束之前失败 的相关文章

随机推荐

  • 您必须为 TextView android 错误提供资源 ID

    我一整天都在尝试解决这个错误 我不明白为什么我的 logcat 打印 05 06 21 45 59 559 ERROR ConversationList 9023 We have chats 05 06 21 45 59 609 ERROR
  • 使用php邮件功能有限制吗?

    我正在使用 php 和 mysql 我将发送 10k 一万多 封电子邮件来更新我的订阅者 这是我第一次发送它们 我将使用 php 邮件功能 基本上这就是我要做的 首先从数据库中获取数据 Select name email FROM data
  • 如何处理 AES CTR 的 IV/Nonce/Counter?

    import javax crypto Cipher public abstract class Crypto private static final String CIPHER ALGORITHM AES CTR NoPadding p
  • numpy ValueError 形状未对齐

    所以我正在尝试改编迈克尔 尼尔森的神经网络http neuralnetworksanddeeplearning com chap1 html http neuralnetworksanddeeplearning com chap1 html
  • 错误[Ljava.lang.Object;将 X509Certificate 的数组列表转换为数组时,无法转换为 [Ljava.security.cert.X509Certificate

    我对这个 ssl 和证书很陌生 我有一个 jks 文件 其中包含服务器信任的一些证书 我试图从 jks 文件中读取所有证书并将其返回到 getAcceptedIssuers 方法 证书的类型为 X509Certificate 我实现的方法正
  • TabBarView 页面未正确重建

    我正在尝试在每一页上显示选项卡编号TabBarView 通过读取其索引TabController 但由于某种原因 即使在日志中打印了正确的值 该值在视觉上似乎也没有正确更新 import package flutter material d
  • iconv() 与. utf8_encode()

    当您有一个与 UTF 8 不同的字符集并且需要将其转换为 JSON 格式以将其迁移到数据库时 可以在 PHP 中使用两种方法 调用 utf8 encode 和 iconv 我想知道哪一种性能更好 什么时候方便使用其中一种 当您的字符集与 U
  • 添加内部超链接到 pdf

    我有一个 PDF 文档 我想向其中添加内部超链接 具体来说 第 1 页包含一个我想要使其可点击的目录 我的想法是在第 1 页的预定位置创建矩形框 该矩形框应链接到第 2 3 我发现这篇文章讨论了使用上面描述的方法添加内部超链接 http b
  • 无法在文件中查找字符串并使用 Inno Setup 填充它?

    I have demo properties文件 我可以加载文件并迭代以获取其中存在的所有值 hibernate connection username jack hibernate connection password queen hi
  • 减小 Excel 文件大小 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在一家excel questions tagged excel应用程序 并为用户提供一个菜单以在该 Excel 应用程序 Excel 工
  • Asp.Net 拒绝用户访问某些页面

    如何允许用户访问我的 Web 应用程序 但拒绝他们访问特定页面 我希望允许更多用户使用我构建的应用程序 但有几个页面我不希望他们能够访问 这是我现在在 Web config 中的内容
  • Angular 6:onChange mat-slide-toggle 条件验证从对象数组中仅选择一个选项

    我有一份清单mat slide toggle 一次只有一个滑块将保持启用状态 而其他滑块将保持禁用状态 现在 当单击该启用的滑块时 其值将被更改 同时其他滑块列表将被启用以供选择 一旦选择一个滑块 其他滑块将被禁用 所以 简而言之 整个数组
  • 为什么字节码编程不如汇编编程那么流行或盛行?

    您可以在互联网上看到汇编代码和汇编编码器 但几乎没有字节码 这是为什么 汇编编程的需求和优点也适用于字节码编程 字节码编程远不如汇编编程流行 常见的另一个原因是字节码的通用性 它的简单性 字节码指令集主要是 ultra RISC 非常简单的
  • 为什么在 Dao 设计模式或其他设计模式中使用接口

    请参阅以下 Dao 设计模式的组成部分 数据访问对象模式或 DAO 模式用于将低级数据访问 API 或操作与高级业务服务分开 以下是数据访问对象模式的参与者 数据访问对象接口 该接口定义要在模型对象上执行的标准操作 数据访问对象具体类 该类
  • TypeScript 编译中的实验装饰器警告

    我收到警告 对装饰器的实验性支持是一项在未来版本中可能会发生变化的功能 设置 experimentalDecorators 选项 以删除此警告 即使我的 tsconfig json 中的compilerOptions具有以下设置 emitD
  • 提交时如何将 Git 提交 ID 填充到文件中?

    我想创建 Git 钩子 它将填充我将要在源代码中创建的文件 基本上是变量替换 的提交的提交 ID 这可以用 Git 实现吗 或者事实上 通过将变量解析为 git id 我将更改 sha 1 从而导致 先有鸡还是先有蛋 的问题 我针对类似情况
  • Cucumber @Before 钩子运行两次 @After 一次

    给所有人 目前正在写一个BDD测试自动化框架 使用Java11 Junit5 Cucumber Selenium 构建工具 Gradle 创建了一个用于验证 Google 标题的小测试 开始测试时 使用Test task在 Gradle 或
  • 如何在 jQuery 中获取图像的当前位置?

    我一直在开发一个具有背景的图像处理脚本 用户可以将一个或多个图像上传到该背景上 我希望用户能够在背景周围拖动和移动 最后他们可以生成最终图像 但是 我不知道如何获取 BG 上可拖动图像位置的位置 我一直在互联网和电子书上搜索 但没有任何线索
  • htaccess 带有 PHP 和 URL 变量的漂亮 URL

    希望有人可以在这里提供一些帮助 这是一个涉及多个层面的问题 简而言之 我想要拥有漂亮的 URL 这些 URL 使用文件夹中文件的 URL 变量 所以 我想要http www example com page path to page htt
  • 未定义的方法“save”使测试在测试结束之前失败

    我正在关注 ruby railstutorial org 我遇到了一些麻烦 但我解决了它们 然而 现在我在谷歌上搜索了相当长的一段时间 检查了代码 我什至知道为什么测试失败 但不知道如何让它通过 所以 问题来了 我有一个用户模型 class