Ho alcuni metodi comuni usati in un paio di specifiche diverse, voglio estrapolarli in qualche posto come un helper delle specifiche accessibile da tutte le specifiche. Qualcuno sa come fare questo?Creazione di un helper spec. In rubymotion
risposta
Ecco qualcosa che cova come uno spec_helper.
# _spec_helper.rb
module SpecHelper
::App::Persistence = {}
# global `before :each` ish
def self.extended(base)
base.before do
::App::Persistence.clear
end
end
def foo_helper
end
end
E poi usarlo:
# my_view_spec.rb
describe "MyView" do
extend SpecHelper
before do
foo_helper
end
...
due cose da tenere a mente:
- file di aiuto
Spec è chiamato in modo tale che venga caricato per primo (leader sottolineatura)
Quando si eseguono specifiche individuali (per esempio.
files=my_view_spec.rb
) file di aiuto deve andare avanti -files=spec/my_view_spec.rb,spec/_spec_helper.rb
ho solo buttare i miei metodi comuni utilizzati in specifiche come sono (non incapsulati in un Module
o niente) in un file dispec/supporto/utilities.rb e Rubymotion sembra prenderli bene, anche se non so se questo è il modo "corretto" per farlo.
Secondo le attuali http://www.rubymotion.com/developer-center/articles/testing/#_spec_helpers
Spec aiutanti sono creati sotto la directory spec/aiutanti di un progetto RubyMotion. Un esempio potrebbe essere spec/helper/extension.rb.
Ho usato questa soluzione per risolvere un problema leggermente diverso, quindi grazie mille per questo! Spero che qualcosa di "ufficiale" come questo possa finalmente arrivare a Rubymotion. –