Я следую этому уроку здесь, и до сих пор все получилось очень хорошо.
Но теперь, когда я перешел на сессии, некоторые простые тесты rspec не срабатывают:
describe SessionsController do
#[...]
describe "GET 'new'" do
it "should have the right title" do
get :new
response.should have_selector( "title", :content => "Sign in" )
end
end
#[...]
describe "POST 'create'" do
#[...]
it "should have the right title" do
post :create, :session => @attr
response.should have_selector("title", :content => "Sign in")
end
#[...]
end
end
Когда я запускаю rspec, я всегда получаю:
1) SessionsController GET 'new' должен
иметь правильное название
Ошибка / Ошибка: response.should have_selector ("title",: content =>
"Войти
)
Ожидается, что следующий вывод будет содержать тег входа в систему:
w3.org/TR/REC-html40/loose.dtd ">
# ./spec/controllers/sessions_controller_spec.rb:14:in
`блок (3 уровня) в '
Когда я получаю доступ к сеансам / новой странице, страница содержит тег заголовка, подобный следующему:
<title>Ruby on Rails Tutorial Sample App | Sign in</title>
Почему эти тесты не пройдены, а все другие подобные тесты (= тесты для тега заголовка) работают нормально?
Вот SessionController:
class SessionsController < ApplicationController
def new
@title = 'Sign in'
end
def create
user = User.authenticate( params[:session][:email], params[:session][:password] )
if user.nil?
flash.now[:error] = "Invalid email/password combination."
@title = 'Sign in'
render 'new'
else
sign_in user
redirect_to user
end
end
def destroy
sign_out
redirect_to root_path
end
end
Что я здесь не так делаю?
спасибо за помощь