Я думаю, вам не нужно генерировать дубликаты тестов для массива, они добавят ненужные сложности в код ваших тестов.Вы можете просто создать поддельный массив и использовать его позже:
items = [:return_value1, :return_value2]
В случае, если вам нужно заблокировать метод и вернуть разные результаты для первого и последующих вызовов, вы можете сделать это:
obj.stub(:method).and_return('1', '2')
В этом случае obj.method
вернет «1» при первом вызове и вернет «2» для всех последующих вызовов.
Кроме того, если вы используете блок для заглушки, вы можетединамически рассчитывать возвращаемое значение в этом блоке.Но это считается не очень хорошей практикой, потому что идиоматически заглушки должны возвращать статические данные.
obj.stub(:method) { Time.now }