忽略rspec中的验证失败

时间:2012-06-14 18:12:34

标签: ruby-on-rails ruby-on-rails-3 validation rspec callback

我需要测试一个运行before_validation的回调,但由于我只想测试回调,所以当验证失败时我不希望测试失败,而且我得到了:

ActiveRecord::RecordInvalid:
       Validation failed: Preview Invalid video ID

我尝试了很多东西。我相信使用.save(:validate => false)时不会调用我的回调方法,因为它在before_validation上运行。

但是当我做这样的事情时:

show = FactoryGirl.build :show
show.should_receive :parse_url
show.save

我得到了

Failure/Error: show.should_receive :parse_url
   (#<Show:0x007fd9954699e0>).parse_url(any args)
       expected: 1 time
       received: 0 times

尽管模型中有我的代码:

before_validation :parse_url, :on => :save

在方法调用旁边,我想在格式化之后检查字段。

我会非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

好吧,你总是可以在它触发时捕获ActiveRecord :: RecordInvalid错误,但仍然会测试你的before_validation的行为。因为你发现错误,RSpec测试不会失败。