我正在开发一个红宝石宝石,它提供了一些可以混合到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应用程序。

09-04 19:20
查看更多