比较 rspec 自定义 ActiveRecord::RecordInvalid 错误消息

2024-05-19

模型中有以下内容:

validates_uniqueness_of :title,
    if: proc { |item| item.item_type == 'tag' },
    case_sensitive: false,
    message: I18n.t('errors.key', value: "%{value}")

并尝试使用以下内容在 rspec 中进行验证:

expect { xxx }.to raise_error(
    ActiveRecord::RecordInvalid,
    I18n.t('errors.key', value: '...passing the title...')
)

我坚持以下非常接近的观点:

ActiveRecord::RecordInvalid with "translated error",
got #<ActiveRecord::RecordInvalid: Validation failed: translated error>

期望等待一个不带引号的值,而发送的值带有引号;它失败了

我在默认设置下遇到了完全相同的错误:

activerecord:
    errors:
      models:
        item:
          attributes:
            title:
              taken: 'translated error'

相同的测试通过以下内容:

expect { xxx }.to raise_error

expect { xxx }.to raise_error( ActiveRecord::RecordInvalid )

使用默认设置也是如此:

如果对此有任何帮助,谢谢


ActiveRecord 添加前缀Validation failed:到错误消息。在你的测试中试试这个:

expect { xxx }.to raise_error(
  ActiveRecord::RecordInvalid,
  "Validation failed: " + I18n.t('errors.key', value: '...passing the title...')
)

您可以通过在语言文件中设置以下键来更改此默认值:

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

比较 rspec 自定义 ActiveRecord::RecordInvalid 错误消息 的相关文章

随机推荐

  • 在 Node 中使用 Babel 导入与请求 [重复]

    这个问题在这里已经有答案了 我想在一个文件中导入一个类 use strict import models from model class Foo bar export default new Foo 当我使用导入时它有效 例如 impor
  • 将本地文件 URL 转换为文件路径

    我有一个指向本地文件的 URL file home pi Desktop music Radio 20Song mp3 我需要以某种方式将其转换为传统的文件路径 例如os模块采用 home pi Desktop music Radio So
  • 电子邮件链接在 Android 上不起作用

    我有 HTML 格式的点击电子邮件链接的代码 它在我的电脑上运行良好 但在移动设备上不起作用 我只有 Android 所以我不知道问题是否仅在 Android 上或所有移动设备上 当我按下链接时 浏览器显示 网页无法显示 邮寄至 电子邮件受
  • 雪花存储过程变量绑定错误

    我正在尝试创建并执行一个简单的 Snowflake 存储过程 该过程接受输入参数并创建一个阶段 但是 当我尝试调用该过程时 它会抛出错误 参数值 无效 create or replace procedure raw test create
  • Spring MVC:如何在 JSP 中获取视图名称?

    是一种在 JSP 中访问视图名称的方法 profile在下面的示例中 或者我需要将此名称添加到模型中 RequestMapping value user account method RequestMethod GET return pro
  • Python:获取USB闪存驱动器设备的名称[windows]

    我正在尝试编写一个小程序 它将能够读取有关 REMOVEABLE DEVICE USB 的一些信息 我试过了pyusb https github com walac pyusb但我无法提取我需要的数据 我想从系统中读取 USB 设备的名称
  • Pickle django 查询?

    是否可以在数据库中腌制或以某种方式存储 django 查询 这是行不通的 u User objects all import cPickle pickled query cPickle dumps u and store the pickl
  • PyCharm 表示 readline 导入未被使用

    我有这个代码 while True cmd input gt if cmd exit break 但我想实现高级文本输入功能 例如命令历史记录 因此我导入了 readline 模块 导入 readline 模块 甚至不使用它 将解锁这些功能
  • 如果我的消耗性 IAP 被退款,我会收到任何通知吗?

    我有 Apple iOS 应用程序 其中有很多消耗性 IAP 我非常担心用户购买IAP并使用一段时间后向Apple客服投诉并获得退款 如果我的消耗品 IAP 退款 我会收到任何通知吗 我如何注意到这一点并阻止用户使用 IAP None
  • 如何使用pyinstaller?

    好吧 我是一个完全的编程菜鸟 我正在尝试编译一个我编写的简单程序 该程序接受一个字符串并以莫尔斯电码打印该字符串 它被称为 morse py 我使用安装 pyinstaller pip install pyinstaller 我正在尝试使用
  • file_get_contents 大文件上传

    我正在尝试使用 fsockopen 上传 2GB 以上的大文件 但 file get content 出现以下错误 我无法在内存中存储大文件 我需要分块发送数据 但不知道如何执行此操作 请问有人可以指导我吗 致命错误 允许的内存大小 134
  • ASP .NET:用户控件何时加载?

    MasterPage gt Page gt UserControl 是 ASP NET 请求的加载顺序吗 是否存在 UserControl 在页面加载之前加载的情况 我有给我的用户的私人消息 他们在每个页面上都会看到这样的消息 您有 3 条
  • “引起:java.lang.RuntimeException:视图必须有标签”的实际含义是什么?

    如果知道想要什么标签 请告诉我 Caused by java lang RuntimeException view must have a tag BaseActivity java Override public void setCont
  • 如何像在 localStorage 中一样从 localForage 分配变量?

    请帮我解决以下问题 我一直在将我的 AngularJS 应用程序从 localStorage 转换为 localForage 在我的应用程序中 我像这样分配 localStorage 值 window localStorage setIte
  • 在 Java 中验证 HMAC SHA1 签名

    我想知道如何验证我创建的签名 我创建签名的代码与此类似 HMAC SHA1 如何在 Java 中正确执行此操作 https stackoverflow com questions 6312544 hmac sha1 how to do it
  • highcharts 可点击标签如何转到锚点

    我在 Backbone 应用程序中使用 Highcharts 在柱形图中显示一些信息 我使用图表中的数据标签来允许用户单击并移动到该数据点的详细信息页面 这不是正常的 window location 调用 而应该是 window locat
  • 使用 ifstream 在大文件中查找

    我正在使用 ifstream 在 C 中实现一个程序 该程序必须在大文件 1TB 中查找 然而 读取2GB后就失败了 有没有办法获取文件位置 即使是大文件 我为 32 位 Windows 机器进行编译 std ifstream f f op
  • 解析错误:语法错误,意外的 T_RETURN [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 遇到这个问
  • 如何检查 BOOL 是否为空?

    有没有办法在将值分配给 BOOL 之前检查该值是否为 NULL Nil 例如 我在 NSDictionary 中有一个值可以是 TRUE FALSE NULL mySTUser current user following results
  • 比较 rspec 自定义 ActiveRecord::RecordInvalid 错误消息

    模型中有以下内容 validates uniqueness of title if proc item item item type tag case sensitive false message I18n t errors key va