#ruby-on-rails #mongodb #rspec #devise
#ruby-on-rails #mongodb #rspec #разработать
Вопрос:
Привет, я не знаю, почему этот тест не выполняется. Это пример из «экспертной» немецкой книги, может быть, кто-нибудь сможет мне помочь…. https://github.com/AGERECKE/Rails-Book-Project
http://pastebin.com/q4kS59ek
Спасибо
Ответ №1:
-
о
received: 0 times with any arguments
том, что вы используете методvisit
, который обычно используется для «приемочных» тестов, а не для тестов контроллера. Я не знаю, что этот метод делает в этом случае. Я думаю, вам следует изменить его наpost
-
о
undefined method 'model_name' for RSpec::Mocks::Mock:Class
вас заглушкаBookmark.stub(:new).and_return(@bookmark)
где@bookmark = double(Bookmark)
— это означает, что@bookmark
это НЕ экземплярBookmark
, это экземплярRSpec::Mocks::Mock:Class
. Когда действиеcreate
начинает работать, оно пытается сохранить запись. Методsave
возвращает false (вы его заглушаете), и представлениеnew
снова отображается. Эта страница содержит форму, на основе@bookmark
которой выполняются вызовыmodel_name
. Возможное решение: использовать@bookmark = Bookmark.new
Комментарии:
1. Привет @gotva, я перешел
visit
наpost
и в bookmarkscontroller я изменил новый метод@bookmark = Bookmark.new(params[:bookmark]) to @bookmark = Bookmark.new
, но я получаю ссылку . может быть, я вас не понял.2. ваш контроллер был правильным (я надеюсь). Проблема в этой заглушке . Для именно этого описания вы должны изменить
@bookmark = double(Bookmark)
на@bookmark = Bookmark.new