我正在构建引擎,我想使用VCR和Webmock进行测试。
Gemfile generated when an engine is created中的文档似乎表明所有引擎的宝石都应该通过gemspec加载,但唯一的选择是add_dependency和add_development_dependency。如果我使用后者,VCR和Webmock会加载到我的开发环境中,然后我必须在开发环境中明确禁用Webmock。我宁愿不这样做,因为主机应用程序可能希望这些宝石在开发中工作,而我的引擎禁用它们可能是意外的。
显而易见的解决方案似乎是使用引擎的Gemfile:
group :test do
gem 'vcr'
gem 'webmock'
end
这是加载仅在测试引擎时使用的宝石的正确方法吗?
有没有陷阱呢?
答案 0 :(得分:0)
其中一个众所周知的rails引擎rails_admin(https://github.com/sferik/rails_admin)使用了这种方法,因此我认为它可以被认为是一种很好的做法。
答案 1 :(得分:0)
Rails应用程序和Rails应用程序的Rails引擎的加载顺序是什么?
我的猜测是Rails应用程序Gemfile是加载或未加载gem的决定因素。这可能值得在Rails测试应用程序中尝试。
答案 2 :(得分:0)
我相信答案是在引擎的Gemfile中声明没有任何问题,gems只用于测试和调试引擎代码。此外,我认为Gemfile模板应该不那么模糊,并且提交了一个拉取请求: