我有一个模型,它的方法只返回用户的名字和数量。
class User < ActiveRecord::Base
def self.list
select("firstname, qty").order("qty desc").all
end
end
我将如何使用 rSpec 测试返回值?
User.list.should == [?????]
该方法返回一个用户对象数组,但只有两个属性。这就是我卡住的地方。
我有一个模型,它的方法只返回用户的名字和数量。
class User < ActiveRecord::Base
def self.list
select("firstname, qty").order("qty desc").all
end
end
我将如何使用 rSpec 测试返回值?
User.list.should == [?????]
该方法返回一个用户对象数组,但只有两个属性。这就是我卡住的地方。
由于.list
返回不完整的用户,您最好的选择可能是将他们的属性作为哈希提取:
User.list.map { |u| u.attributes }.
should == [{ :firstname => "John", :qty => 10 }, { ... }]
factory_girl
将其干燥:
fewer_qty_user = Factory.create(:blank_user, :qty => 100, :firstname => 'Bob')
more_qty_user = Factory.create(:blank_user, :qty => 200, :firstname => 'Alice')
User.list.should == [more_qty_user, fewer_qty_user]