В моем контроллере у меня есть следующий код:
def create
@post = Post.new(post_params)
if @post.save
flash[:notice] = "#{@post.title} was successfully created."
redirect_to post_path
else
flash[:alert] = @post.errors.full_messages
render :new
end
end
Мне удалось написать код rspe c, чтобы охватить истинное утверждение в функции spe c, однако я борюсь за ложное заявление. Пока что это rspe c, который я придумал для решения моей проблемы (помещен в posts_controller_spe c .rb):
it 'should return false and render the new template' do
allow_any_instance_of(Post).to receive(:valid?).and_return(false)
expect(response).to render_template(:new)
end
К сожалению, я столкнулся со следующей ошибкой:
Failures:
1) PostsController create should return
Failure/Error: expect(response).to render_template(:new)
expecting <"new"> but rendering with <[]>
Я пробовал смотреть другие вопросы о stackoverflow, а также другие предложения в Интернете, но, похоже, не могу понять.
Любая помощь будет принята с благодарностью :)