ruby - 我可以将 factorygirl 工厂添加到共享 gem 吗

标签 ruby gem factory-bot

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

最佳答案

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

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

|-- 库 | |-- awesome_gem | | |-- 模块1 | | `-- 版本.rb | |-- 工厂 | | |-- factory1.rb | | `-- factory2.rb | `--awesome_gem.rb | `-- 规范 |-- 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。请注意,您需要在规范助手中指定您的工厂路径以包含您的共享工厂。请注意,此解决方案未经测试,需要包含的路径可能不同。您也可以将工厂目录放在 lib 目录之外,只要它包含在您的 .gemspec 中即可。

关于ruby - 我可以将 factorygirl 工厂添加到共享 gem 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24511724/

相关文章:

ruby-on-rails - Rails 中工厂女孩的单表继承

ruby-on-rails - 需要建议 : Structure of Rails views for submenus?

ruby - 如何将一行文本写入文件中间?

ruby - ruby-1.9.2 和 ruby​​ 1.9.2-mri 与 rvm 的区别

ruby-on-rails - Monkey(也许?)在我的 Rails 应用程序中修补一个 Gem

ruby-on-rails - 找不到 compass 插件 Susy

ruby-on-rails - 无法使用 Chef-Solo 在 vagrant 虚拟 CentOS 机器上安装 Rails gem

ruby-on-rails - 从固定装置切换到工厂女孩

ruby - 使用散列获取 Typeerror(没有将符号隐式转换为整数)