2012-05-23 6 views
5

Estoy usando gmaps4rails e intento desarrollar algunas pruebas.¿Cómo guardar las funciones de geocodificación de gmaps4rails en las pruebas de rspec?

que tienen una fábrica

factory :country do 
    sequence(:name) { |n| "Country#{n}" } 
end 

lo que obviamente no es reconocido por Google.

Validation failed: Gmaps4rails address Address invalid 

Las llamadas a API también tardan en ejecutarse en mis pruebas.

¿Cómo puedo rescindir la llamada API?

He intentado añadir

before(:each) 
    Country.stub(:geocode) 
end 

en el fichero de especificaciones pero no tiene ningún efecto.

Mi modelo se parece a esta

class Country < ActiveRecord::Base 
    acts_as_gmappable :lat => 'latitude', :lng => 'longitude' 
    def gmaps4rails_address 
    "#{self.name}" 
    end 
    geocoded_by :gmaps4rails_address 

    after_validation :geocode 
end 

Gracias por cualquier idea.

Respuesta

5

No hay nada que hacer con enteros en el nombre.

Supongo que la dirección no existe o no es válida.

De todos modos, hay muchas maneras de omitir la geocodificación o la codificación.

inspirarse en la gem's specs

+0

¿No contesta? – apneadiving

+0

Hola apneadiving. gracias por la respuesta. Parece que la dirección inválida es una respuesta de Google. Suena bien? Entonces, ¿cómo corto la geocodificación? Estoy ejecutando una prueba única country_specs.rb, en la que tengo un before: cada bloque que contiene 'Country.stub (: geocode)'. He intentado algunas otras cosas '.stub_geocode',' .stub (: gmaps4rails) ', etc. Pero la geocodificación aún se está ejecutando. Añadiré mi código de modelo a la pregunta. Apreciar cualquier sugerencia que tengas –

+0

proviene de la gema. Para ver el apuñalamiento, consulte aquí: https://github.com/apneadiving/Google-Maps-for-Rails/blob/master/spec/support/geocoding.rb – apneadiving

Cuestiones relacionadas