将Rspec模拟转换为Mocha以测试活动模型序列化程序

时间:2013-06-01 10:37:02

标签: testing rspec mocking active-model-serializers

我在自定义rspec示例组中使用Benedikt Diecke的帖子来测试活动模型序列化程序,但无法将其转换为使用mocha而不是rspec模拟。

http://benediktdeicke.com/2013/01/custom-rspec-example-groups/

该示例包含一个模拟将被序列化的模型类的通用方法,它使用rspec模拟 - 如何将其转换为使用mocha?

let(:resource) do
    double(resource_name, attributes).tap do |double|
        double.stub(:read_attribute_for_serialization) { |name| attributes[name] }
    end
end

1 个答案:

答案 0 :(得分:3)

我看不出在那里使用模拟有很多东西可以获得。我将从资源工厂方法返回一个真实的实例,即。在自定义示例组中,根本不定义let(:attributes),只需定义

let(:resource) do
  {}
end

然后您的序列化规范看起来像

require 'spec_helper'

describe UserSerializer do
  let(:resource){ FactoryGirl.build(:resource_name) }

  it { should have_key(:name) }
  it { should have_key(:email) }
  it { should have_key(:created_at) }
  it { should have_key(:updated_at) }
end