Заглушка массивов результатов ActiveRecord - PullRequest
1 голос
/ 25 марта 2010

В Ruby 1.8.6 использование метода поиска для возврата массива не работает, когда тестируемый код вызывает метод count для результата:

User.any_instance.stubs(:friends).returns([user1, user2])

Это потому, что Array.count был добавлен только в Ruby 1.8.7. Rails также добавляет метод count динамически, я полагаю, через модуль ActiveRecord :: Calculations.

Есть ли способ превратить этот массив результатов во что-то, что ведет себя точно так же, как специальный тип Array, возвращаемый методом поиска Rails? При разбивке на страницы результатов это легко: я могу просто позвонить [] .paginate. Но это не работает с обычными результатами поиска. Я пытался [].extend(ActiveRecord::Calculations), но это тоже не работает.

1 Ответ

0 голосов
/ 25 марта 2010

Вы можете посмеяться над счетом тоже:

arr = [user1, user2]
arr.stubs(:count).returns(arr.size)
User.any_instance.stubs(:friends).returns(arr)
...