У меня проблема при попытке использовать 'shoulda' с 'factory_girl' для создания функционального теста для 'create' в приложении Rails.Я создал простой проект, пользователь scaffolded, добавил 'shoulda' (текущую версию gem в моей системе 2.11.3) и 'factory_girl' в test_helper.rb.Создание пользователя вручную работает нормально.Ниже приведены шаги по воспроизведению ошибки:
- rails project
- имя пользователя лесов: строка
добавьте в test_helper.rb:
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" устарела, но безуспешно.У вас есть идеи?
Заранее спасибо,
Мариан Василий Карайман.