0
用下面测试的RSpec:Rspec和_return按id排序?
@search_text = "California"
@search_condition = "location"
Video.stub_chain(:where,:order).and_return([@vid1,@vid2,@vid3])
Video.should_receive(:where).with("lower(#{@search_condition}) LIKE ?", "%#{@search_text}%".downcase)
return_val = Video.search(@search_text, @search_condition)
return_val.should == [@vid1,@vid2,@vid3]
,其测试范围如下:
scope :search, (lambda do |search_text, search_condition|
where("lower(#{search_condition}) LIKE ?", "%#{search_text}%".downcase).order("name")
end)
我得到RETURN_VALUE不会使我回ROM中的stub_chain值的值。特别是,返回的数组内部的项目是相同的,但它们的顺序似乎按id排序而不是按名称排序。有谁知道为什么会发生?
谢谢!
这远远不是一个规范的,你只是测试你实现这是没有意义的。要指定范围,请在db中创建条目并查看是否获得了您期望的条目。 – apneadiving 2012-04-21 20:54:24
是的,我知道这个测试是多余的,我不再使用它,但它只是这种行为很奇怪,所以我想知道是否有人解释它为什么发生。 – user1082160 2012-04-21 21:00:35