2015-07-13 57 views
1

我是新的测试与Ruby和我使用Rspec & FactoryGirl为此。RSpec测试索引视图和will_paginate

我想测试我的索引视图,其中显然有will_paginate

这里是我的控制器:

def index 
    @products = Product.paginate(:page => params[:page], :per_page=>30) 
    respond_with(@products) 
end 

我有一个will_paginate基本观点和产品表。

这里是我的测试:

RSpec.describe "products/index", type: :view do 
    before(:each) do 
    @products = Array.new 
    31.times do 
     @products << FactoryGirl.create(:product) 
    end 
    assign(:products, @products) 
    end 

    it "renders a list of products" do 
    render 
    end 
end 

首先,是它做的正确方法:创建一个数组,然后分配给它?

纠正我,如果我错了,但assign(:products, @products)是相当于@products = Product.paginate(:page => params[:page], :per_page=>30)为测试

回答

1

我绕过我的问题与此代码:

RSpec.describe "products/index", type: :view do 
    before(:each) do 
    # Create a list of 31 products with FactoryGirl 
    assign(:products, create_list(:product, 31)) 
    end 

    it "renders a list of products" do 
    allow(view).to receive_messages(:will_paginate => nil) 
    render 
    end 
end 

我接受这个解决方案的任何建议。