在ruby Gemfile中指定宝石的可选依赖项的正确方法

Vik*_*rón 5 ruby testing rubygems bundler gemfile

宝石打算支持宝石ab作为功​​能的替代品。

在代码中,我检查defined?(A)是否可以恢复b正常。

但是作为宝石开发者,如何指定这些依赖关系?

1)我要在Gemfile中放入什么。

group :development, :test do
  gem 'a', :require => false
  gem 'b', :require => false
end
Run Code Online (Sandbox Code Playgroud)

这允许Bundle.require(:test)不自动要求a,b吗?

2)当我们退回到测试中时,如何明确要求ab分别模拟(或模拟)场景b

3)还有我怎么指定,要么a或者b是创业板的先决条件。

谢谢

小智 0

不久前我也收到了同样的问题。我的解决方案是认为开发人员应该指定此行为。我不会在 gem 上指定它,而是在 wiki 上指定。我建议您清楚地记录开发人员需要定义依赖项之一。

为了使它更好,您可以检查 gem 的初始化,查找依赖项,如果找不到依赖项,则仅引发运行时异常,或者如果您愿意,也可以引发您自己的异常。=)