- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一段要测试的代码:
def error_from_exception(ex)
if ex.is_a?(ActiveRecord::RecordInvalid)
...
ex
参数。
context 'exception is ActiveRecord::RecordInvalid' do
it 'returns the validation error' do
begin
raise ActiveRecord::RecordInvalid
rescue Exception => ex
binding.pry
###
# From my pry session:
# $ ex
# $ <ArgumentError: wrong number of arguments (0 for 1)>
# $ ex.class
# $ ArgumentError < StandardError
###
end
end
end
最佳答案
编辑:这在 Rails 5.1.1 中现在是可能的。此提交后不再需要记录参数:https://github.com/rails/rails/commit/4ff626cac901b41f86646dab1939d2a95b2d26bd
如果您使用的是低于 5.1.1 的 Rails 版本,请参阅下面的原始答案:
似乎不可能提出 ActiveRecord::RecordInvalid
通过它自己。如果您查看 ActiveRecord::RecordInvalid
的源代码, 初始化时需要记录:
class RecordInvalid < ActiveRecordError
attr_reader :record # :nodoc:
def initialize(record) # :nodoc:
@record = record
...
end
end
save!
保存它。 (如需要
User.new.save!
时调用
User.name
)。但是,请记住,如果您使用的模型发生更改并且它在您的测试中变得有效(不再需要
User.name
),这在将来可能会成为一个问题。
关于ruby-on-rails - 如何创建 ActiveRecord::RecordInvalid 进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26024359/
我有一段要测试的代码: def error_from_exception(ex) if ex.is_a?(ActiveRecord::RecordInvalid) ... 要进入 if 块,我需要
我试图用组合保存技术的嵌套属性,我有以下代码:投资组合.rb(模型) class Portfolio { where(subtitle: "Ruby on Rails") } # callbac
我试图用组合保存技术的嵌套属性,我有以下代码:投资组合.rb(模型) class Portfolio { where(subtitle: "Ruby on Rails") } # callbac
使用 ruby 2.6 和 rails 5.2Rails 控制台中的用户创建引发 ActiveRecord::RecordInvalid (Validation failed: Account m
我有三个模型,Course、Category 和 partner,一个类(class)可以有多个类别,一个类(class)属于一个合作伙伴。当我创建我的类(class)工厂时,出现以下错误: Part
我正在使用 rspec 创建测试并尝试引发错误“ActiveRecord::RecordInvalid”,但我一直收到“预期的 ActiveRecord::RecordInvalid 但未引发任何错误
我有 3 个非常简单的模型 class Receipt true end 因此,每次创建新的 ReceiptItem 时,都会触发 after_create 回调,以使用 save! 创建新的 Tr
试图找出我的 rspec 测试失败的原因。最值得注意的是看起来自相矛盾的失败消息。声明我有一个 ActiveRecord::RecordInvalid 错误,这正是我断言应该发生的事情。 这是我的 u
我有模型 Question 是 has_many Answer。我需要一个问题至少有一个答案,我正在使用 rspec 进行测试 validates :answers, length: { minimu
我有如下三个关联模型: class Product [1,2]) 并且 description 验证失败,然后我得到 false 和 doc 上的相应错误。这正是我想要的。 但是,如果 doc 已经
好吧,所以我发誓这个种子文件以前可以工作,但现在每当我尝试运行 Rails db:seed 命令时,我都会收到错误: rails aborted! ActiveRecord::RecordInvali
以下 rspec 测试失败,但与失败测试一起提供的消息似乎是预期结果。 describe '#validate_maximum_pending_actions_not_been_reached' do
我希望得到一些帮助来解决一个问题,我相信你们中的许多人在睡梦中都可以避免。 我有两个处于 habtm 关系的模型。一个包可以有多个位置,一个位置可以有多个包。如果我的位置模型验证失败(例如,由于位置地
我是 OneMonth 的 Rails 初学者学习 Stripe 支付。现在,我正在学习如何创建产品表并为数据库设置种子。到目前为止一切都很顺利,直到我在运行 rake db:seed 后遇到问题 D
在我的应用程序中,我有时会即时创建一个用户,并且用户的电子邮件必须是有效格式并且是唯一的。 我想根据导致错误的验证重定向到不同的地方:无效格式与重复。 在我的代码中,我有 begin
我试过这段代码,但它引发了错误:NameError: uninitialized constant RSpec::Mocks::Mock RSpec::Mocks::Mock.stub(:i18n_s
我是一名优秀的程序员,十分优秀!