У меня проблема с попыткой использовать «shoulda» с «factory_girl» для создания функционального теста для «create» в приложении Rails. Я создал простой проект, пользователь с шаблоном, добавил «shoulda» (текущая версия гема в моей системе 2.11.3) и «factory_girl» в test_helper.rb. Создание пользователя вручную отлично работает. Ниже приведены шаги по воспроизведению сбоя:
- проект рельсов
- имя пользователя скаффолда: строка
- # P2 #
require 'shoulda' require 'factory_girl'
rake db: migrate
напишите следующий функциональный тест для пользователя (переопределите users_controller_test.rb):
class UsersControllerTest < ActionController::TestCase Factory.define(:user) do |u| u.name 'joe' end context "should create user" do context "with valid data" do setup do User.any_instance.expects(:save).returns(true).once User.any_instance.stubs(:id).returns(1001) post :create, :user => {} end should_assign_to :user, :class => User should_set_the_flash_to "User was successfully created." should_redirect_to("user page"){user_path(1001)} end end end
Выполнение теста с "rake test: functionals" показывает ошибку:
Ожидаемый ответ - перенаправление на
<http://test.host/users/1001>
, но было перенаправление на<http://test.host/users>
.
Я также играл с «should_redirect_to», потому что я видел, что «should_redirect_to» устарело, но безуспешно. У тебя есть идеи ?
Заранее спасибо,
Мариан Василий Карайман.