Раздражающая ошибка RSPEC - PullRequest
1 голос
/ 07 мая 2011

Привет всем, Мой тест Rspec не выполнен с ошибкой:

syntax error, unexpected kEND, expecting $end (SyntaxError)

Я не знаю почему, мой код выглядит следующим образом (фактическое содержимое удаляется с помощью стрелок на боковой панели в xcode):

require 'spec_helper'

describe UsersController do 
  render_views 
  describe "GET 'show'" do 
    ... 
  end 
  describe "GET 'new'" do 
     ... 
  end 
  describe "POST 'create'" do 
    ... 
  end 
end 

Полный код на http://snipt.org/xtpm

Ответы [ 3 ]

0 голосов
/ 07 мая 2011

В исходной ссылке, которую вы разместили, многие ваши блоки используют DO вместо do .Это определенно приведет к проблеме, которую вы описываете.

0 голосов
/ 08 мая 2011

Обычно эта ошибка означает, что у вас слишком мало end, он столкнулся с концом файла и ожидал найти команду end. Однако из кода, который вы показали, это было не совсем понятно для меня. Ваш отступ был ужасно непоследователен, что не помогло прояснить это с первого взгляда:)

Что я видел: если вы используете rspec1, , документация рекомендует использовать {} вместо do .. end при тестировании на изменения. Итак, в вашем случае:

lambda {
  post :create, :user => @attr
}.should change(User, :count).by(1)

В rspec2 вы должны написать

expect { ... }.to change

так в вашем случае

expect { post :create, :user => @attr }.to change(User, :count).by(1)

Надеюсь, это поможет.

0 голосов
/ 07 мая 2011

Обычно эта ошибка указывает на то, что у вас есть дополнительные end где-то в вашей программе. Вы должны проверить, что все правильно сбалансировано в файле, который сгенерировал ошибку. Один из способов сделать это - вырезать большие куски и посмотреть, сможете ли вы просто «запустить» файл самостоятельно, пока не сузите его до точного места.

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

В любом случае вставленный код, по крайней мере, проходит через анализатор без инцидентов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...