Как сделать так, чтобы сеансы Sinatra сохранялись в тестах POST?

В следующем коде из Learn Ruby the Hard Way: https://gist.github.com/1696733 кажется, что сеанс исчезает после прохождения «сообщения» в тестах (запустите ruby test_gothonweb.rb, чтобы понять, что я имею в виду). Если я на самом деле захожу на сайт с помощью своего браузера, все работает правильно, но я хотел бы иметь возможность протестировать сайт, не посещая каждую страницу. Каковы возможные причины исчезновения сессий в тестах?

Есть несколько вопросов, близких к этой проблеме, но большинство из них решается без использования дробовика. Я не использую shotgun. Я просто использую обычный ruby.

Версии:

  • рубин: 1.9.2
  • Синатра: 1.3.2
  • стойка: 1.4.0 1.4.1
  • рэк-тест: 0.6.1

ИЗМЕНИТЬ

Я также отключаю сеансы во время тестирования в соответствии с http://benprew.posterous.com/testing-sessions-with-sinatra — в этом случае работает первый тест с использованием сессий с GET (но не POST).


person William    schedule 29.01.2012    source источник


Ответы (1)


Существует известная проблема со стойкой 1.4.0. Обновите гем до 1.4.1

person three    schedule 29.01.2012
comment
Спасибо за ответ. Я обновил гем стойки до 1.4.1, но ошибка осталась. Другие подсказки? - person William; 29.01.2012
comment
извините, не увидел сути. Вы не включаете сеансы при выполнении тестов. Говоря, если тест? вы пропускаете вариант сеанса. Попробуйте удалить тесты "если"? - person three; 29.01.2012
comment
Да, я делаю это на основе следующего: stackoverflow.com/questions/4402808/ и benprew.posterous. com/testing-sessions-with-sinatra . Если я удалю unless test?, первый тест завершится неудачно (получится), но он будет работать, если я отключу сеанс в тесте. - person William; 29.01.2012