Я новичок в тестировании и пытаюсь написать тест в links_spec.rb
.
describe "Links" do
before :each do
activate_authlogic
@company = Factory.build(:company)
# next line creates errors
@user = Factory.build(:user, :user_type => "Company", :user_type_id => @company.id)
UserSession.create( @company.user )
end
it "redirects to index after create" do
link = Factory.build(:link)
post "links"
response.should redirect_to(links_path)
end
end
Во-первых, строка @user = Factory.build(...)
выдает ошибку, потому что говорит, что пользователь дублирован -Я не знаю, где создается пользователь, потому что Компания и Пользователь не имеют надлежащих полиморфных отношений (это другая история), и Company.rb не создает автоматически пользователя при создании.
Итак,когда я удаляю эту строку, все выглядит нормально, кроме случаев, когда она достигает строки response.should redirect...
.Вместо перенаправления на links_path
, тест не пройден и говорит мне:
Failure/Error: response.should redirect_to(links_path)
Expected response to be a redirect to <http://www.example.com/links> but was a redirect to <http://www.example.com/home>
# ./spec/requests/links_spec.rb:13:in `block (2 levels) in <top (required)>'
Я не понимаю, почему это происходит или как это исправить.