2012-06-14 100 views
0

验证失败我需要测试的运行before_validation回调,但我只需要测试回调,我不想测试失败验证失败时,而此刻我得到:忽略RSpec的

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 

而且在方法调用身边我想格式化后检查字段。

我会非常感谢任何帮助。

+0

尝试删除“:on =>:保存” – Roman

回答

0

那么,你可以随时捕获ActiveRecord :: RecordInvalid错误,但它仍然会测试你的before_validation的行为。由于您发现错误,RSpec测试不会失败。

+0

谢谢。你有什么想法为什么我的'FactoryGirl.build','.should_receive'和'.save'不工作? – Uko