2012-05-23 12 views
5

Sto usando gmaps4rails e sto provando a sviluppare alcuni test.Come disattivare le funzioni geocodiche di gmaps4rails nei test rspec?

Ho una fabbrica

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

che ovviamente non è riconosciuto da Google.

Validation failed: Gmaps4rails address Address invalid 

Anche le chiamate API richiedono tempo per essere eseguite nei test.

Come posso interrompere la chiamata API?

Ho provato ad aggiungere

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

per il file spec, ma non ha alcun effetto.

Il mio modello assomiglia a questo

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 

Grazie per tutte le idee.

risposta

5

Non c'è niente a che fare con gli interi nel nome.

Suppongo che l'indirizzo sia assente o non valido.

In ogni caso, ci sono molti modi per saltare la geocodifica o per fermarla.

prendere ispirazione dal gem's specs

+0

Non ti risponde? – apneadiving

+0

Ciao apneadiving. Grazie per la risposta. Sembra che l'indirizzo non valido sia una risposta di Google. Suona bene? Quindi, come posso bloccare la geocodifica? Sto eseguendo un singolo test country_specs.rb, in cui ho un precedente: ogni blocco che contiene 'Country.stub (: geocode)'. Ho provato un paio di altre cose '.stub_geocode',' .stub (: gmaps4rails) ', ecc. Ma la geocodifica è ancora in corso. Aggiungerò il mio codice modello alla domanda. Apprezzo i suggerimenti che hai –

+0

proviene dalla gemma. Per lo sguardo di stub qui: https://github.com/apneadiving/Google-Maps-for-Rails/blob/master/spec/support/geocoding.rb – apneadiving