2014-03-05 85 views
0

檢查隨機我想用RSpec的測試這種方法:Rspec的:如何使用rspec的

ActiveModel::ArraySerializer.new(User.order("RANDOM()").where(:sex => "f").limit(10)).as_json 

使用工廠的女孩,我創建了一些用戶

FactoryGirl.create_list(:user, 15) 

如何檢查,如果該方法返回一個隨機結果?謝謝

+0

用什麼方法你要測試,什麼是它的定義是什麼?你的第一個代碼片段是一個Ruby表達式。 –

回答

0

作爲一個委託人的問題,單元測試應該是確定性的。您可以使用統計模型來測試結果是隨機的,但這意味着您的測試將會有時失敗(1,2,3,4 ...也是一個有效的隨機結果!)。

你究竟想要測試什麼?您想查看postgresql的隨機方法是否隨機?這對於單元測試是超出範圍的。我可以爲您提供最好的事情是期待調用order("RANDOM()"),雖然這也可能是一個有點畫蛇添足:

expect(User).to receive(:order).with('RANDOM()').and_return(User)