我正在开发一个红宝石宝石,它提供了一些可以混合到ActiveRecord模型中的方法,例如actions_as_taggable。
我的问题是:我该如何写在没有Rails应用的情况下对我的代码进行单元测试?我的模型依赖于在Rails建立的现有数据库/连接上。如果没有连接,则测试执行失败。
我还需要使用以下命令将一些文件从我的gem目录复制到rails应用程序: RAILS_ROOT以检测Rails应用程序目录。环境变量也不可用。
你会怎么做?可以在测试运行期间以某种方式“模拟” Rails应用程序吗?
预先感谢您的任何提示。
最佳答案
这些天我有一个非常相同的问题:
Rspec, test Gems
您会在我自己的答案中看到有趣的资源。
我最终在我的gem的测试目录中创建了Rails应用程序。在我应用程序的gem文件中,我已经在开发中引用了我的gem及其相对路径。
简而言之:我通过应用程序测试了gem。
看看:https://github.com/apneadiving/Google-Maps-for-Rails
我有一个包含所有Rspec测试的虚拟Rails应用程序。