Ruby on rails Rails-如何测试需要Gem实例的视图(f.e.wice_grid)
我需要为使用wice_grid的视图文件编写一个测试。我们现在的问题是测试失败,因为视图需要一个这样的实例Ruby on rails Rails-如何测试需要Gem实例的视图(f.e.wice_grid),ruby-on-rails,rspec,rubygems,ruby-on-rails-4,rspec-rails,Ruby On Rails,Rspec,Rubygems,Ruby On Rails 4,Rspec Rails,我需要为使用wice_grid的视图文件编写一个测试。我们现在的问题是测试失败,因为视图需要一个这样的实例 1) admin/shops/index renders a list of admin/shops Failure/Error: render ActionView::Template::Error: WiceGrid: The first argument for the grid helper must be an instance of the WiceGrid cl
1) admin/shops/index renders a list of admin/shops
Failure/Error: render
ActionView::Template::Error:
WiceGrid: The first argument for the grid helper must be an instance of the WiceGrid class
# ./app/views/admin/shops/index.html.erb:40:in `_app_views_admin_shops_index_html_erb___340103790847020275_34309580'
# ./spec/views/admin/shops/index.html.erb_spec.rb:12:in `block (2 levels) in <top (required)>'
这是视图文件
require 'spec_helper'
describe "admin/shops/index" do
before(:each) do
assign(:admin_shops, [
stub_model(Shop),
stub_model(Shop)
])
end
it "renders a list of admin/shops" do
render
# Run the generator again with the --webrat flag if you want to use webrat matchers
end
end
<%= grid(@grid, upper_pagination_panel: false) do |g| css_class =
g.column name: "Id", attribute: "id"
g.column name: "Country", attribute: "country_id"
end -%>
在测试中需要wice网格: 编辑:在测试中还包括wice_网格控制器:
require 'spec_helper'
require 'wice_grid'
describe "admin/shops/index" do
include Wice::Controller # this will add the initialize_grid method
# ...
然后在测试中的before(:each)
中,将@grid
var分配给一个新的wice\u网格
describe "admin/shops/index" do
include Wice::Controller
before(:each)do
assign(:grid, initialize_grid(Shop))
end
# ... your tests
初始化网格(您的模型)
的部分应与在控制器中分配@grid
时的部分相同
编辑:我是通过阅读wice_网格源代码得出这个结论的,从这个文件开始:-在第36行,你可以看到wice是如何将自己包含到
ActionController::Base
中的。这就是控制器中可用的initialize\u grid
方法。因此,它也适用于您的测试。在测试中需要wice网格:
编辑:在测试中还包括wice_网格控制器:
require 'spec_helper'
require 'wice_grid'
describe "admin/shops/index" do
include Wice::Controller # this will add the initialize_grid method
# ...
然后在测试中的before(:each)
中,将@grid
var分配给一个新的wice\u网格
describe "admin/shops/index" do
include Wice::Controller
before(:each)do
assign(:grid, initialize_grid(Shop))
end
# ... your tests
初始化网格(您的模型)
的部分应与在控制器中分配@grid
时的部分相同
编辑:我是通过阅读wice_网格源代码得出这个结论的,从这个文件开始:-在第36行,你可以看到wice是如何将自己包含到
ActionController::Base
中的。这就是控制器中可用的initialize\u grid
方法。因此,它也适用于您的测试。在测试中需要wice网格:
编辑:在测试中还包括wice_网格控制器:
require 'spec_helper'
require 'wice_grid'
describe "admin/shops/index" do
include Wice::Controller # this will add the initialize_grid method
# ...
然后在测试中的before(:each)
中,将@grid
var分配给一个新的wice\u网格
describe "admin/shops/index" do
include Wice::Controller
before(:each)do
assign(:grid, initialize_grid(Shop))
end
# ... your tests
初始化网格(您的模型)
的部分应与在控制器中分配@grid
时的部分相同
编辑:我是通过阅读wice_网格源代码得出这个结论的,从这个文件开始:-在第36行,你可以看到wice是如何将自己包含到
ActionController::Base
中的。这就是控制器中可用的initialize\u grid
方法。因此,它也适用于您的测试。在测试中需要wice网格:
编辑:在测试中还包括wice_网格控制器:
require 'spec_helper'
require 'wice_grid'
describe "admin/shops/index" do
include Wice::Controller # this will add the initialize_grid method
# ...
然后在测试中的before(:each)
中,将@grid
var分配给一个新的wice\u网格
describe "admin/shops/index" do
include Wice::Controller
before(:each)do
assign(:grid, initialize_grid(Shop))
end
# ... your tests
初始化网格(您的模型)
的部分应与在控制器中分配@grid
时的部分相同
编辑:我是通过阅读wice_网格源代码得出这个结论的,从这个文件开始:-在第36行,你可以看到wice是如何将自己包含到
ActionController::Base
中的。这就是控制器中可用的initialize\u grid
方法。因此,它也适用于您的测试。谢谢您的回答。。。我现在的问题是,它说“未定义的方法‘初始化网格’”,因为它是一个受保护的方法。没问题。在实例化@grid的控制器中有什么?它的def index@grid=initialize\u grid(Shop)endI编辑了我的答案,以包含未定义initialize\u grid错误的解决方案。感谢您的回答。。。我现在的问题是,它说“未定义的方法‘初始化网格’”,因为它是一个受保护的方法。没问题。在实例化@grid的控制器中有什么?它的def index@grid=initialize\u grid(Shop)endI编辑了我的答案,以包含未定义initialize\u grid错误的解决方案。感谢您的回答。。。我现在的问题是,它说“未定义的方法‘初始化网格’”,因为它是一个受保护的方法。没问题。在实例化@grid的控制器中有什么?它的def index@grid=initialize\u grid(Shop)endI编辑了我的答案,以包含未定义initialize\u grid错误的解决方案。感谢您的回答。。。我现在的问题是,它说“未定义的方法‘初始化网格’”,因为它是一个受保护的方法。没问题。在实例化@grid的控制器中有什么?它的def index@grid=initialize\u grid(Shop)endI编辑了我的答案,以包含未定义的initialize\u grid错误的解决方案。