2013-01-02 27 views
5

Test etme capybara kullanarak test planı. Rspec ve capybara kullanarak işareti test edemediğimden bir şey yanlış görünüyor. Im kullanıcıya İşteRspec capybara Kullanıcı giriş yapamıyor

FactoryGirl.define do 
factory :user do 
    email '[email protected]' 
    password 'bhaktapur' 
    password_confirmation 'bhaktapur' 
    admin true 
    name 'admin' 
    confirmation_sent_at "#{DateTime.now}" 
    confirmation_token 'anupsumhikichiki' 
    confirmed_at "#{DateTime.now}" 
    username 'username' 
end 
end 

tanımlamak için fabrika kızı kullanarak burada 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 'rspec/autorun' 
require 'capybara/rspec' 
require 'database_cleaner' 
# FactoryGirl.find_definitions 
Capybara.current_driver = :selenium 
# 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.include Devise::TestHelpers, :type => :controller 
config.before(:suite) do 
DatabaseCleaner.strategy = :transaction 
DatabaseCleaner.clean_with :truncation 
end 

config.before(:each) do 
DatabaseCleaner.start 
end 
# config.after(:each) { } 
config.after(:each) do 
DatabaseCleaner.clean 
Warden.test_reset! 
end 
config.fixture_path = "#{::Rails.root}/spec/fixtures" 
config.use_transactional_fixtures = false 

# If true, the base class of anonymous controllers will be inferred 
# automatically. This will be the default behavior in future versions of 
# rspec-rails. 
config.infer_base_class_for_anonymous_controllers = false 
end 

Ve Ayrıca benim Kullanıcı modeli doÕrulanabilir

+0

içinde nihayet burada http://stackoverflow.com/questions/6576592/failing-to-test-devise-with-capybara cevap – xecutioner

+0

Ben çözümler bulduk kullanarak http://stackoverflow.com/questions/6576592/failing-to-test-devise-with-capybara – xecutioner

cevap

3
ayarlandığında benim Spec

require_relative '../spec_helper.rb' 
include Warden::Test::Helpers 
Warden.test_mode! 

feature "the signin process" do 
before :each do 
@user_attr = FactoryGirl.attributes_for(:user) 
# @user = FactoryGirl (:user) 
User.create!(@user_attr) 
end 

scenario "signs me in" do 
    # login_as @user, :scope => :user 
    visit '/' 
    fill_in 'Login', :with => "[email protected]" 
    fill_in 'Password', :with => "bhaktapur" 
    click_button 'Sign in' 
    page.should have_content "Signed in successfully" 
    Warden.test_reset! 
end 
end 

olduğunu

Tüm onaylanabilir veri noktalarını eklemek yerine ..

kullanın
@user = FactoryGirl.build(:user) 
@user.skip_confirmation! 
@user.save! 

Sonra senaryo

fill_in 'Login', :with => @user.email 
fill_in 'Password', :with => @user.password 
+0

Bullfrog'a yardım etmeye çalıştığınız için teşekkürler, ancak sorun hala devam ediyor. Garip olan, kullanıcı kontrol ettiğimde test veritabanında var. – xecutioner

+2

Bu http://stackoverflow.com/questions/6576592/failing-to-test-devise-with-capybara'yı kullanarak çözümü buldum. – xecutioner

İlgili konular