我有一个称为get_books_from_amazon的帮助器方法,它执行API调用并返回书籍数组。我无法弄清楚如何在我的请求规格中进行存根。rails/rspec中请求规范的存根帮助器方法
module BooksHelper
def get_books_from_amazon(search_term)
...
end
end
class StaticController < ApplicationController
include BooksHelper
def resources
@books = get_books_from_amazon(search_term)
end
end
我试图在我的规格如下,每个都无济于事:
# spec/requests/resource_pages_spec.rb
...
describe "Navigation" do
it "should do such and such" do
BooksHelper.stub!(:get_books_from_amazon).and_return(book_array)
StaticHelper.stub!(:get_books_from_amazon).and_return(book_array)
ApplicationHelper.stub!(:get_books_from_amazon).and_return(book_array)
StaticController.stub!(:get_books_from_amazon).and_return(book_array[0..4])
ApplicationController.stub!(:get_books_from_amazon).and_return(book_array[0..4])
request.stub!(:get_books_from_amazon).and_return(book_array)
helper.stub!(:get_books_from_amazon).and_return(book_array)
controller.stub!(:get_books_from_amazon).and_return(book_array)
self.stub!(:get_books_from_amazon).and_return(book_array)
stub!(:get_books_from_amazon).and_return(book_array)
visit resources_path
save_and_open_page
end
任何想法的问题是什么?
谢谢你的建议。我曾考虑将它制作为Books模型,但这听起来更准确一些。你通常在文件树中放置这样的东西?仍然在应用/模型? – tyler
是的,你可以 - 许多人会说 - 应用/模型中放置非ActiveRecord模型。 –