2010-08-23 30 views
13

Şu anda iPhone'a özgü HTML meta etiketlerini oluşturmak için kullanılan bir Rails eklentisi üzerinde çalışıyorum. Birim testleri için ActionView :: TestCase kullanmaya çalışıyorum ama aynı hatayı almaya devam ediyorum. Aşağıdaki dosya içeriğini ve hatayı görün. Herhangi bir fikir veya yardım çok takdir edilecektir.Görünüm yardımcı yardımcılarını sınama

test_helper.rb

require 'rubygems' 
require 'test/unit' 
require 'active_support' 
require 'action_view' 
require File.join(File.dirname(__FILE__), '..', 'lib', 'iphone_helper') 

hata

RuntimeError: In order to use #url_for, you must include routing helpers explicitly. For instance, `include Rails.application.routes.url_helpers 
+0

Tamam, bu aptalca bir soru olabilir, büyük olasılıkla, ama hata mesajında ​​verdiği satır satırını eklemeyi denediniz mi? – jasonpgignac

+0

Evet, başka bir hata veren satırı eklemeyi denedim: başlatılmamış sabit IphoneHelperTest :: Rails' –

+0

Tamam, sadece tahmin etmek, ama belki de url_helpers satırı bireysel test-case yerine test-helper dahil edilmesi gerekiyor? –

cevap

4

korkunç h

require 'test_helper' 

class IphoneHelperTest < ActionView::TestCase 
    test 'br' do 
    tag = tag('br') 
    assert_tag_in tag, '<br />' 
    end 
end 

iphone_test_helper.rb

require 'ostruct' 

module ActionController::UrlFor 
    def _routes 
    helpers = OpenStruct.new 
    helpers.url_helpers = Module.new 
    helpers 
    end 
end 
1

Eğer eski kafalı bir şekilde ?:

include ActionDispatch::Routing::RouteSet 
yılında the respective Module eklemeyi denediniz mi: (Ben değil tam raylar ortamında bir mücevher üzerinde çalışıyorum beri) benim için çalıştı Acky geçici çözüm

NameError, ActionDispatch öğesinin bilinmediğini bildirirse, require 'action_dispatch''a gereksiniminiz olabilir.

0

Belki de aptalca bir soru, ancak sınıf adı ve dosya adı muhtemelen bir sorunla eşleşmiyor mu (IphoneHelperTest vs. iphone_test_helper.rb)? Bazen bu, yüklenmeyen sınıflara yol açar.

İlgili konular