Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Ruby On Rails > Ошибка сравнения по регулярному выражению в rspec


Автор: VladDV 2.4.2013, 16:07
Привет!

Возникла проблема с тестом на rspec в RoR 3.2. Пытаюсь сравнить вывод функции-хэлпера с регулярным выражением таким вот кодом:

Код

describe 'результирующая строка должна включать параметр' do
    full_title('test').should =~ /atest/
end


Суть хэлпера - сцепить базовый заголовок и параметр, переданный в функцию. Возвращает склеенную строку. Если в регулярном выражении справа поставить текст, который содержится в возвращаемом результате хэлпера, то тетс проходит успешно (зеленый). В противном случае тест вылетает с исключением (не красный, а именно прерывание работы):

Код

/home/vlad/.rvm/gems/ruby-1.9.3-head/gems/rspec-expectations-2.13.0/lib/rspec/expectations/fail_with.rb:32:in `fail_with': expected: /atest/ (RSpec::Expectations::ExpectationNotMetError)
     got: "Базовый заголовок | test" (using =~)
Diff:
@@ -1,2 +1,2 @@
-/atest/
+"Базовый заголовок | test"


Никак не могу понять, в чем проблема. 

P.S.: в RoR новичек, прошу отнестись лояльно smile

Автор: VladDV 3.4.2013, 04:49
Нашел важную особенность. Мой файл тестов находится в папке rspec/helpers, которую я создал сам для тестирования хэлперов. Там сравнение по регулярным выражениям не работает. Я попробовал сделать аналогичный тест в папке интеграционных тестов rspec/requests, и там все отработало. Можно ли как-то заставить нормально работать тесты из папки rspec/helpers?

Автор: VladDV 8.4.2013, 08:05
В общем решил проблему:

1) Оказывается нормально не был подключен capybara. Он конфликтовал с гемом 'webrat'. Я его закомментил, обновил бандлы. 
2) Пришлось переименовать папку requests в features (для версии capybara 1.1.2)
3) Переместил папку с тестами хэлперов в папку features, чтобы их видел capybara. После этого тесты отработали нормально.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)