【发布时间】:2016-09-15 00:44:01
【问题描述】:
我一直在用 RSpec 编写测试。
当我执行valid? 方法时,它会删除对象拥有的错误消息。
我不明白为什么会这样。
这是 RSpec 还是 Ruby 特定的行为?
如果是这种情况,我该如何解决?
我经常看到类似的测试用例,
it"isinvalidwithoutafirstname"do
contact = Contact.new(firstname: nil)
contact.valid?
expect(contact.errors[:firstname]).not_to include("can't be blank")
end
为什么在这个例子中他们在expect之前使用contact.valid?
更新
plan = Plan.new(
xxx_id: xxx_id,
amount: amount,
currency: currency,
interval: interval,
name: name,
description: description
)
return plan unless plan.valid?
begin
XXX::Plan.create(
id: xxx_id,
amount: amount,
currency: currency,
interval: interval,
name: name
)
rescue XXX::XXXError => e
plan.errors[:base] << e.message
return plan
end
plan.save && plan
这是方法的一部分。
我是红宝石新手。我应该把save 放在return plan 之前吗?
【问题讨论】:
标签: ruby-on-rails ruby rspec