Rspec have_link с акцентными словами - PullRequest
0 голосов
/ 18 февраля 2012

Кто-нибудь испытывал этот вид теста?

Делаем это:

# this works
it { should have_link("Next") } 

но тот же тест, использующий слово, которое содержит акценты, такие как «Próximo» (означает «Далее» на португальском)

# it fails
it { should have_link("Próximo")  }

ошибка:

1) UserPages index pagination 
     Failure/Error: it { should have_link("Próximo") }
       expected link "Próximo" to return something
     # ./spec/requests/user_pages_spec.rb:29:in `block (4 levels) in <top (required)>'

Finished in 2.8 seconds
28 examples, 1 failure

user_pages_spec.rb (только соответствующий код)

describe "pagination" do
  before(:all) { 30.times { FactoryGirl.create(:user) } }
  after(:all) { User.delete_all }

  it { should_not have_link('delete') }
  it { should have_link("Próximo") }
  it { should have_link('2') }
end

Как мне пройти этот тест?

Ответы [ 3 ]

3 голосов
/ 18 февраля 2012

Один из способов был бы поставить:

# encoding: utf-8

в верхней части вашего spec-файла, поэтому Ruby знает, что файл содержит символы не ASCII.

подробнее: http://nuclearsquid.com/writings/ruby-1-9-encodings/

2 голосов
/ 18 февраля 2012

Указывает ли ваш источник, что в скрипте есть Unicode?

# encoding: UTF-8 

Вот действительно хорошая запись: http://yehudakatz.com/2010/05/05/ruby-1-9-encodings-a-primer-and-the-solution-for-rails/

1 голос
/ 18 февраля 2012

Исправлено.

На мгновение я забыл, что я работал под Spork, и все, что мне нужно было сделать, это перезапустить веб-сервер и перезапустить Spork.

Совет: Если вы работаете с Nginx, перейдите в консоль и введите touch tmp/restart.txt в папке вашего проекта.Это перезапустит Nginx.

...