Ruby on rails 如何使用RSpec测试Rails引擎gem的view partial或helper方法?

Ruby on rails 如何使用RSpec测试Rails引擎gem的view partial或helper方法?,ruby-on-rails,rspec,gem,partial-views,rails-engines,Ruby On Rails,Rspec,Gem,Partial Views,Rails Engines,在过去的两天里,我一直在阅读我在博客、书籍、其他宝藏中找到的所有东西,所以我一辈子都搞不懂这一点。诚然,我对编写Ruby gems和Rails引擎还不熟悉,也不完全熟悉所有的RSpec视图方法(但我正在尽可能多地学习) 我已经在Github上公开了我的项目(虽然是在早期阶段,但这是基于我在最近的项目上重用的一些标记,我正在慢慢地尝试将这些标记引入这个gem): 我已经停止添加新功能,而我正在想办法让我的测试正常工作。主要问题是,我正在尝试运行一个测试,该测试只会呈现一个部分视图(我可以在此基础

在过去的两天里,我一直在阅读我在博客、书籍、其他宝藏中找到的所有东西,所以我一辈子都搞不懂这一点。诚然,我对编写Ruby gems和Rails引擎还不熟悉,也不完全熟悉所有的RSpec视图方法(但我正在尽可能多地学习)

我已经在Github上公开了我的项目(虽然是在早期阶段,但这是基于我在最近的项目上重用的一些标记,我正在慢慢地尝试将这些标记引入这个gem):

我已经停止添加新功能,而我正在想办法让我的测试正常工作。主要问题是,我正在尝试运行一个测试,该测试只会呈现一个部分视图(我可以在此基础上构建,稍后检查其他内容),如下所示:

render :partial => 'admin_bar-rails/bar.html.haml'
rendered.should contain 'admin-panel'
…但是我从RSpec得到一个关于查看渲染器的
NameError
,如下所示:

Failures:

  1) rendering admin bar should render an empty admin bar
     Failure/Error: render :partial => 'admin_bar-rails/bar.html.haml'
     NameError:
       undefined local variable or method `view_renderer' for #<RSpec::Core::ExampleGroup::Nested_2:0x007f99f260ec88>
     # ./spec/views/admin_bar-rails/bar.html.haml_spec.rb:13:in `block (2 levels) in <top (required)>'
故障:
1) 呈现管理栏应呈现空的管理栏
失败/错误:render:partial=>'admin\u bar-rails/bar.html.haml'
名称错误:
未定义的局部变量或方法“view\u renderer”#
#./spec/views/admin_bar-rails/bar.html.haml_spec.rb:13:in'block(2层)in'
我尝试过包含和要求我读过的所有东西(正如你从我代码中的注释行中看到的),但我无法让它通过


这主要是一个“将动态标记插入视图”gem,这样我(和您)就可以在其他Rails项目中重用一些常用模板。我只是做错了吗?人们会在gems中测试这样的视图吗?有谁能告诉我一些使用RSpec的更多视图/资产的其他gem示例吗?

最终选择了另一条路径,编译我以前在部分视图中使用的标记,并通过助手方法中的
content\u tag
调用创建相同的内容。这有两个好处:1)将所有相关代码保存在一个地方,2)使部分更易于测试,3)简化了gem,因为现在我根本不需要任何视图(只需要Ruby/Rails代码)

注意:我删除了我在问题中链接到的旧gem,并将其替换为以下内容: