Ruby 如何使用扩展ActiveRecord模型的RSpec测试gem?

Ruby 如何使用扩展ActiveRecord模型的RSpec测试gem?,ruby,ruby-on-rails-3,rspec,rspec-rails,Ruby,Ruby On Rails 3,Rspec,Rspec Rails,我正在将我们使用的一些代码移动到gem中。代码允许您在ActiveRecord模型上创建面包屑,如下所示: Parent < ActiveRecord::Base has_breadcrumbs end 我需要通过确保我的has_breadcrumbs正确响应并允许我对AR模型应用设置来测试gem是否正常工作。然而,我发现这很棘手,因为我没有DB,我需要以某种方式模拟这些对象 一些代码示例将非常有助于我了解这类事情的最佳实践。因为您的gem使用AR,所以在您的规范中不包含AR依赖性将

我正在将我们使用的一些代码移动到gem中。代码允许您在ActiveRecord模型上创建面包屑,如下所示:

Parent < ActiveRecord::Base
  has_breadcrumbs
end
我需要通过确保我的
has_breadcrumbs
正确响应并允许我对AR模型应用设置来测试gem是否正常工作。然而,我发现这很棘手,因为我没有DB,我需要以某种方式模拟这些对象


一些代码示例将非常有助于我了解这类事情的最佳实践。

因为您的gem使用AR,所以在您的规范中不包含AR依赖性将非常糟糕。只需在您的规范中创建一个模型类,并尝试针对该模型进行测试。下面是一个Sequel插件的示例:。但是这应该很容易适应AR。如果你不想使用数据库,你可以使用nulldb。你将要测试的breadcrumbs做了什么?如果你正确地测试你的gem,你不需要ActiveRecord,如果你在测试中与它有一些交互,你应该把它去掉。ActiveRecord在其他地方进行了测试。
require 'rubygems'
require 'rails/all'
require 'rspec/rails'