我正在开发一种红宝石宝石,它提供了一些可以混合到ActiveRecord模型中的方法,类似于acts_as_taggable。
我的问题是:我如何写作,例如没有rails应用程序对我的代码进行单元测试?我的模特依赖于在rails建立的现有数据库/连接上。如果没有连接,则测试执行失败。
我还需要使用例如一些文件从我的gem目录复制到rails应用程序。 RAILS_ROOT检测rails app dir。环境变量也不可用。
你的方法是什么?可以在测试运行期间以某种方式“模拟”rails应用程序吗?
提前感谢任何提示。
答案 0 :(得分:4)
这些天我有同样的问题: Rspec, test Gems
你会在我自己的答案中看到有趣的资源。
我最终在我的gem的测试目录中创建了一个rails应用程序。在我的应用程序的gem文件中,我用它的相对路径引用了我的宝石。
简而言之:我通过应用程序测试宝石。
查看:https://github.com/apneadiving/Google-Maps-for-Rails
我有一个带有所有Rspec测试的虚拟Rails应用程序。