【问题标题】:Can I add factorygirl factories to shared gem我可以将 factorygirl 工厂添加到共享 gem
【发布时间】:2014-07-01 13:39:40
【问题描述】:

我有一组已提取到共享 gem 中的 active_model 模型。我希望 gem 还包含它们的工厂,以用于在任何使用 gem 的项目中定义的 rspec 测试,以避免在每个项目中定义相同的工厂。这可能吗?

【问题讨论】:

标签: ruby gem factory-bot


【解决方案1】:

是的,有可能。您可以将工厂放置在您的宝石中。让我们说 lib/gem/factories/。然后你的其他宝石可以包括工厂。

例如,当您创建 gem 'awesome_gem' 时,您可以具有以下结构:

|-- lib | |-- awesome_gem | | |-- module1 | | `-- version.rb | |-- factories | | |-- factory1.rb | | `-- factory2.rb | `-- awesome_gem.rb | `-- spec |-- awesome_gem `-- spec_helper.rb

其中 lib 包含您的 gem 代码,而 specs 包含您的规范。 awesome_gem.rb 将定义您的 gem 包含,例如 awesome_gem/version.rb 和更多包含。但是建议不要包含 factory 目录,因为您的 gem 的用户不能使用 factory_girl。

打包 gem 后,他们可以在测试中使用 require awesome_gem/factories/factory1.rb。请注意,您需要在规范助手中指定您的工厂路径以包含您的共享工厂。请注意,此解决方案未经测试,需要包含的路径可能不同。您也可以将 factory 目录放在 lib 目录之外,只要它包含在您的 .gemspec 中即可。

【讨论】:

  • 你能解释一下吗?
  • @EkiEqbal,给你。见上面的消息。
猜你喜欢
  • 1970-01-01
  • 2018-10-20
  • 2011-05-17
  • 1970-01-01
  • 2016-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多