2009-08-12 14 views
5

Düzenime bir   eklendiğinde son zamanlarda başlayan bir salatalık adımım var.  'u çıkarsam testlerim geçer. Geri koymak zaman webrat tarafından sağlanan click_link yöntemini kullanan her test şu iletisiyle başarısız olur:Salatalık ve/veya Webrat nefis  ?

And he follows 'Unsubscribe' 
    incompatible encoding regexp match (UTF-8 regexp with ASCII-8BIT string) (Encoding::CompatibilityError) 
    (eval):3:in `click_link` 
    (eval):2:in `click_link` 
    /path_to_project/webrat_steps.rb:19:in `/^(I|he|she) follows? '([^\"]*)'$/' 
    features/manage_subscriptions.feature:59:in `And he follows 'Unsubscribe'' 

Herkes herhangi bir öneriniz var mı?

cevap

5

Aynı problemi Ruby 1.9 ve Rails 2.3.2 altında çalıştım. Çalışması için webrat geminde aşağıdaki değişiklikleri yapmak zorunda kaldım. bu yüzden yukarıdaki yapmak zorunda

def replace_nbsp(str) 
    str.gsub([0xA0].pack('U'), ' ') 
end 

Ticket 260 webrat sunuldu bir yama da vardı

def replace_nbsp(str) 
    if str.respond_to?(:valid_encoding?) 
    str.force_encoding('UTF-8').gsub(/\xc2\xa0/u, ' ') 
    else 
    str.gsub(/\xc2\xa0/u, ' ') 
    end 
end 

için, ama benim için işe yaramadı:

lib/webrat/core/locators/link_locator.rb ben değiştirmek zorunda . Bu yardımcı olur umarım.

İlgili konular