Используя Rails 3.0.5, RSpec 2 и Capybara 0.4.1.2, я пытаюсь написать спецификацию контроллера для моего действия SessionsController # new.
it "assigns the empty session to a variable" do
get :new
assigns(:session).should == ActiveRecord::Base::Session.new
end
Я использую пространство имен ActiveRecord :: Base, так как оно кажется конфликтующим с классом Capybara Session, когда я этого не делаю.
Вот SessionsController:
class SessionsController < ApplicationController
def new
@session = Session.new
end
end
RSpec, похоже, не понимает, что это одни и те же объекты. Вот что возвращает мой тест:
Failure/Error: assigns(:session).should == ActiveRecord::Base::Session.new
expected: #<Session id: nil, session_id: nil, data: nil, created_at: nil, updated_at: nil>
got: #<Session id: nil, session_id: nil, data: nil, created_at: nil, updated_at: nil> (using ==)
Diff:
# ./spec/controllers/sessions_controller_spec.rb:17:in `block (3 levels) in <top (required)>'
Любые намеки?