如何存根Gmaps4rails

时间:2012-10-23 09:48:45

标签: ruby-on-rails testing rspec gmaps4rails

我想在rails项目上为ruby实现一个rspec测试。有些类使用gmaps4rails

factories.rb:

 FactoryGirl.define do
   factory :place do |s|
      sequence(:name) {|n| "test  place#{n}" }
   end
 end

factorytest_spec.rb(需要'spec_helper')

it "Test" do
Place.any_instance.stub(:geocode).and_return("..")
  8.times do
    s = FactoryGirl.build(:shop_with_adress)
  end
end

现在这段代码有时会通过绿色,有时则不会。

 Failure/Error: s = FactoryGirl.build(:place)
 ActiveRecord::RecordInvalid:

这似乎导致Gmaps4rails Adress invalid错误(?) 我应该如何存根gmaps4rails?我真的不知道如何准确地应用How to stub gmaps4rails geocode functions in rspec tests?中的提示。也许是因为我对stubbing / rspec很新。

1 个答案:

答案 0 :(得分:0)

您可以复制Gmaps4rails.geocode已发布的here上的存根,并在必要时根据您的需要进行调整。

要进行自定义,请复制粘贴结果:

Gmaps4rails.geocode("your custom address")

这是一个数组并复制它:

Gmaps4rails.stub(:geocode) do |*args|
  your_custom_array
end

显然,我建议,像在gem中一样,创建自己的规范支持模块。