ある日付以降に作成されたユーザーを取得するメソッドのテストを開発しようとしています。テストを模擬する方法がわかりません。方法は次のとおりです。
def user_list
render :nothing => true, :status => 422 if params[:time_param].blank?
time = Time.parse(params[:time_param])
@users = User.find(:all, :select => 'id, login, email',
:conditions => ["created_at > ?", time])
render :json => { :users => @users }
end
終わり
これは私の仕様です:
describe UsersController do
context "when receiving time parameter" do
before (:each) do
@time_param = "2013-01-25 00:01:00"
user1 = mock_model(User, :created_at => Time.parse('2013-01-25 00:00:00'))
user2 = mock_model(User, :created_at => Time.parse('2013-01-25 00:01:00'))
user3 = mock_model(User, :created_at => Time.parse('2013-01-25 00:02:00'))
@users = []
@users << user1 << user2 << user3
end
it "should retrieve crimes after 00:01:00 time" do
User.stub(:find).with(:all, :select => 'id, login, email').and_return(@users)
get :user_list, { :time_param => @time_param }
JSON.parse(response.body)["users"].size.should eq 1
end
end
end
問題は、1人だけを返すにもかかわらず、常にすべてのユーザーを返すことです。(最後のもの)。どこを間違えているの?
助けて=)