Я хочу проверить, что конкретный значок отображается в представлении для пользователя с полосой более X дней. Поэтому мне нужно заглушить метод streak
модели User
. Но я хочу, чтобы он заглушил метод только для конкретного пользователя на основе его uid
. Код теста приведен ниже.
test "should display an icon for users with streak longer than 7 days" do
node = node(:one)
User.any_instance.stubs(:streak).returns([8,10])
get :show,
author: node.author.username,
date: node.created_at.strftime("%m-%d-%Y"),
id: node.title.parameterize
assert_select ".fa-fire", 1
end
Возвращаемое значение представляет собой массив, первое значение в массиве — это количество дней в полосе, а второе значение — количество сообщений в этой полосе.
Строка User.any_instance.stubs(:streak).returns([8,10])
заглушает любой экземпляр класса User
. Как я могу заглушить его, чтобы он заглушал только те экземпляры, где :uid => 1
?
:uid
= 0, а в другом тесте будет использоваться заглушка, в которой:uid
является некоторым значением, большим или равным 1. - person Andrew Eddie   schedule 30.05.2016