2010-05-02 2 views
1

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

describe 'layouts/application' do 
    it "renders flash notices" do 
    flash[:notice] = "This is a notice!" 
    render 
    response.should contain "This is a notice!" 
    end 
end 

Является ли мой код неправильно, или это «пока еще не реализован функция "в Rspec 2? Я на Rails3 и Rspec2 со своей главной ветки на Git.

Спасибо!

ответ

0

Забавно, я просто искал здесь информацию о вспышках, потому что мои истории озоноразрушителей в Rails 3 beta 3 и RSpec 2, кажется, были разбиты там, где они нажимают на флэш-уведомления.

Итак, я думаю, что вы правы. Существует либо новый трюк в использовании флэш-уведомлений в Rails3 с RSpec2, либо RSpec2 не реализовал это.

Очень проблематично, если вы пытаетесь донести историю огурца до Rails3 прямо сейчас.

+0

Я думаю, что эта проблема теперь решена на главной ветке. Я еще не тестировал его, но все должно быть в порядке: http://github.com/rspec/rspec-rails/issues/closed#issue/45 – jbpros

+0

Пробовал ли он это и может подтвердить, что он работает сейчас. – Cimm

0

Я не думаю, что есть простой способ сделать это с помощью Rspec. Тем не менее, это идеальное приложение для Cucumber, где вы могли бы написать что-то вроде этого:

Scenario: Layout displays flash messages 
    Given a layout 
    When I render the view 
    Then I should see "This is a notice!" 

Конечно ваш сценарий будет сделать что-то уникальное для вашего приложения, чтобы вы могли проверить, что фактическое сообщение, которое вы ожидали визуализируется.

+0

Благодарим вас за подсказку, но я уже использую огурец, с точки зрения «особенность». На самом деле я разрабатываю это приложение в BDD-ish: я пишу функцию, запускаю ее, записываю спецификации, запускаю их, прогоняю, прохожу, рефакторинг и начинаю с следующей функции. Сценарий огурца проверяет конкретное уведомление на странице, после того, как какое-то событие произошло в определенном контексте, как ожидается конечным пользователем. В представлении вида основное внимание уделяется обязанностям самого вида макета приложения. Одним из них является отображение любого уведомления о вспышках. Вот что я пытаюсь описать здесь. – jbpros

+0

С риском озвучивания glib я собираюсь предположить, что если ваша функция увидит, что уведомление о вспышке было добавлено в ответ, ваша работа будет выполнена. Пользователю все равно, будет ли уведомление получено из шаблона вида, макета, частичного или любого другого. – zetetic

+0

Правильно, пользователю все равно. Вот почему в моей функции нет упоминания о представлении или подобном понятии. Но с точки зрения разработчика я хочу убедиться, что мой взгляд правильно выполняет свою работу и что я могу полагаться на его поведение в любом контексте. Во всяком случае, дело в том, что я думаю, что в Rspec2 что-то не хватает: флэш насмехается внутри просмотров (и я думаю, что он работал в Rspec1). – jbpros

Смежные вопросы