Mam spec/controllers/add_to_carts_spec.rb
:niezdefiniowana metoda `sign_in' dla # <RSpec :: Rdzeń :: ExampleGroup :: Nested_1 :: Nested_1: 0x1057fd428> Błąd podczas próby utworzenia rspec ze opracować
require 'spec_helper'
describe CartItemsController do
before (:each) do
@user = Factory(:user)
sign_in @user
end
describe "add stuff to the cart" do
it "should add a product to the cart" do
product = FactoryGirl.create(:product)
visit products_path(product)
save_and_open_page
click_on('cart_item_submit')
end
end
end
i /spec/support/spec_helper.rb
:
# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'capybara/rspec'
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
config.mock_with :rspec
config.use_transactional_fixtures = true
end
... który również ładuje /spec/support/devise.rb
:
RSpec.configure do |config|
config.include Devise::TestHelpers, :type => :controller
end
Guard jest działa w tle i ciągle rzuca to:
Failures:
1) CartItemsController add stuff to the cart should add a product to the cart
Failure/Error: sign_in @user
NoMethodError:
undefined method `sign_in' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x1057fd428>
# ./spec/controllers/add_to_carts_spec.rb:7
Spędziłem ostatnie kilka godzin próbując różnych ustawień konfiguracyjnych i różne składnie, ale nic nie wydaje się zmieniać. Jakieś pomysły?
(edytowane w celu odzwierciedlenia nowszą błąd)
To specyfikacja kontrolera, więc oczekiwałbym, że zadziała. – solnic
Dzięki, masz rację. Mylę dwa rodzaje specyfikacji. Używałem kapibary, aby odwiedzać strony i tym samym używać mechanizmów sesji, ale próbuję zalogować użytkownika tak, jak robię to w mojej specyfikacji kontrolera. kapibara nie używa do nich ani nie ma do nich dostępu. –