覆盖ActiveRecord :: Base ==运算符 - 好主意?

时间:2014-01-22 21:11:16

标签: ruby-on-rails ruby activerecord rspec

我遇到了Rspec和ActiveRecord :: Base的问题。我想检查我的解析器是否正确创建了模型实例。

我尝试将新对象与新对象进行比较,但发现它不起作用。然后我尝试保存对象,但这也不是一个解决方案 - 因为如果我也创建了预期的模型实例,那么id会有所不同。

我使用覆盖==运算符来匹配我的所有字段,而没有id。我觉得这是一个棘手的解决方案。

解决这个问题的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

就个人而言,我认为这是一个坏主意。你将如何测试纯粹的平等?

我会写(或通过谷歌查找)一个名为“matches_attributes”的rspec匹配器,它将比较每个对象属性列表,如果它们相同则返回true。