2012-02-07 4 views
0

J'ai écrit quelques cas de test Rspec dans mon fichier spec/models/season_spec.rb. Ils sont aussi: -Échec du test de l'unité Rspec

require 'spec_helper' 

describe Season do 

    it 'should not be without name' do 
    Season.new(:name=>nil,:number_of_weeks=>'3',:start_date=>'2012-02-07',:user_id=>'113').should_not be_valid 
    end 

    it 'should not be without number of weeks' do 
    Season.new(:name=>'Apurva',:number_of_weeks=>nil,:start_date=>'2012-02-07',:user_id=>'113').should_not be_valid 
    end 

    it 'should not be without start_date' do 
    Season.new(:name=>'Apurva',:number_of_weeks=>'3',:start_date=>nil,:user_id=>'113').should_not be_valid 
    end 

    it 'should not be without user_id' do 
    Season.new(:name=>'Apurva',:number_of_weeks=>'3',:start_date=>'2012-02-07',:user_id=>nil).should_not be_valid 
    end 

    it 'should be with valid attributes' do 
    Season.new(:name=>'Apurva',:number_of_weeks=>'3',:start_date=>'2012-02-07',:user_id=>'113').should be_valid 
    end 
end 

Et dans mon modèle i ont validé ces domaines tels que: -

class Season < ActiveRecord::Base 

    validates_presence_of :name,:number_of_weeks,:start_date,:user_id 
end 

Mais encore les cas de test sont échoué. Et il me donne la sortie suivante: -

/usr/lib/ruby/gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:138: warning: Insecure world writable dir /usr/lib/ruby/gems/1.8 in PATH, mode 040777 
FFFFF 

Failures: 

/usr/lib/ruby/gems/1.8/gems/rspec-core-2.8.0/lib/rspec/core/formatters/base_text_formatter.rb:165:in `pending_fixed?': undefined method `pending_fixed?' for #<ActiveRecord::StatementInvalid:0xb6cd03c8> (NoMethodError) 
    from /usr/lib/ruby/gems/1.8/gems/rspec-core-2.8.0/lib/rspec/core/formatters/base_text_formatter.rb:19:in `dump_failures' 
    from /usr/lib/ruby/gems/1.8/bundler/gems/rails-27357a6965eb/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:473:in `each_with_index' 
    from /usr/lib/ruby/gems/1.8/gems/rspec-core-2.8.0/lib/rspec/core/formatters/base_text_formatter.rb:17:in `each' 
    from /usr/lib/ruby/gems/1.8/gems/rspec-core-2.8.0/lib/rspec/core/formatters/base_text_formatter.rb:17:in `each_with_index' 
    from /usr/lib/ruby/gems/1.8/gems/rspec-core-2.8.0/lib/rspec/core/formatters/base_text_formatter.rb:17:in `dump_failures' 
    from /usr/lib/ruby/vendor_ruby/rspec/core/reporter.rb:75:in `send' 
    from /usr/lib/ruby/vendor_ruby/rspec/core/reporter.rb:75:in `notify' 
    from /usr/lib/ruby/vendor_ruby/rspec/core/reporter.rb:74:in `each' 
    from /usr/lib/ruby/vendor_ruby/rspec/core/reporter.rb:74:in `notify' 
    from /usr/lib/ruby/vendor_ruby/rspec/core/reporter.rb:23:in `conclude' 
    from /usr/lib/ruby/vendor_ruby/rspec/core/reporter.rb:14:in `report' 
    from /usr/lib/ruby/vendor_ruby/rspec/core/command_line.rb:24:in `run' 
    from /usr/lib/ruby/vendor_ruby/rspec/core/runner.rb:55:in `run_in_process' 
    from /usr/lib/ruby/vendor_ruby/rspec/core/runner.rb:46:in `run' 
    from /usr/lib/ruby/vendor_ruby/rspec/core/runner.rb:10:in `autorun' 
    from /usr/bin/rspec:4 
+0

Veuillez prendre soin de formater votre code et vos stacktraces en les indentant avec quatre espaces lors de la publication ici. Je vous remercie. –

+0

Veuillez formater comme Ryan a indiqué - merci. –

+0

Merci Mikhali, Ryan et Michael. Désolé pour le mauvais format. Maintenant s'il vous plaît jeter un oeil –

Répondre

2

D'abord, il y a une faute de frappe dans la spécification 'should not be without name'. S'il vous plaît vérifier s'il s'agit juste d'une faute de frappe en tapant le quetion ici, ou dans votre code. Deuxièmement, ces tests sont inutiles puisque ce code est déjà testé here.

+0

+1 Pour des conseils pour ne pas tester le code Rails. Concentrez-vous sur votre logique métier. –

+0

@MarkThomas: Je pense que vous et moi pourrions avoir tort ici. David Chelmisky dit qu'en général, c'est évidemment la bonne façon de procéder, en cas de validation - vous devez ajouter des spécifications/tests, car c'est un comportement. Découvrez son commentaire à: http://stackoverflow.com/questions/9175150/testing-the-relationships-and-methods-in-model-using-rspec#comment11545458_9175150 – Swanand

+0

D'accord. Les validations peuvent être des spécifications, mais les tests doivent être représentatifs des besoins de l'entreprise. Il s'agit juste de faire attention de ne pas franchir la ligne pour tester le système de validation lui-même. –