Question

J'essaie différents blogs avec des exemples de Rails 3 et RSpec. Oui il est sous Windows, donc la réponse est non pas sous Windows. Pas de choix à cet égard. Continuons ...

Je suis en mesure d'exécuter la spécification soit avec les spécifications rspec ou spécifications rake: modèles de sorte que semble bien. Toutefois, si je tente d'utiliser un bloc avant avec des attributs, il ne parvient à créer une classe personne avec ces attributs. Les autres tests sont juste là pour montrer les spécifications peuvent fonctionner.

a fait un modèle de personne alors mis à jour la spécification

\ myapp \ spec \ modèles \ person_spec.rb

require 'spec_helper'

describe Person do

  before(:each) do
    @valid_attributes = {
      :first_name => "Foo", 
      :last_name => "Bar"
    }
  end

  it "should create a new instance given valid attributes" do
    Person.create!(@valid_attributes)
  end

  it "can be instantiated" do
    Person.new.should be_an_instance_of(Person)
  end

  it "can be saved successfully" do
    Person.create.should be_persisted
  end



  #pending "add some examples to (or delete) #{__FILE__}"
end

Voici la sortie de spécification de coupe: commande modèles

C:\Users\laptop\Documents\Sites\myapp>rake spec:models
C:/Ruby193/bin/ruby.exe -S rspec ./spec/models/person_spec.rb

Person
←[31m  should create a new instance given valid attributes (FAILED - 1)←[0m
←[32m  can be instantiated←[0m
←[32m  can be saved successfully←[0m

Failures:

  1) Person should create a new instance given valid attributes
     ←[31mFailure/Error:←[0m ←[31mPerson.create!(@valid_attributes)←[0m
     ←[31mActiveRecord::UnknownAttributeError:←[0m
       ←[31munknown attribute: first_name←[0m
←[36m     # ./spec/models/person_spec.rb:13:in `block (2 levels) in <top (required)>'←[0m

Finished in 0.074 seconds
←[31m3 examples, 1 failure←[0m

Failed examples:

←[31mrspec ./spec/models/person_spec.rb:12←[0m ←[36m# Person should create a new instance given valid attributes←[0m
rake aborted!
C:/Ruby193/bin/ruby.exe -S rspec ./spec/models/person_spec.rb failed

Donc deux sur trois est passé juste pas celui avec des attributs.

Quelque chose en particulier qui aurait besoin d'être mis en place pour un avant bloc pour exécuter ou comment sont les attributs passés dans un test avec Rails 3?

Aussi est-il un moyen de se débarrasser de ceux] 31m et ces imprimés pour chaque ligne spec?

Merci

Était-ce utile?

La solution 2

Je dois mettre à jour ce avec la réponse.

Le modèle Personne ne contiennent en fait prenom et last_name, mais comme il est indiqué par deux personnes au-dessus de l'erreur que je recevais pointé ActiveRecord ne pas le trouver.

Dans Windows, en cours d'exécution rake db: Migrer deux ou trois fois par la suite fixé, même si elle ne manquait pas dans le modèle.

Si vous êtes coincé sur dev Windows, cela peut être une bonne chose à savoir!

J'ai finalement été en mesure de mettre Lubuntu sur VirtualBox sous Windows 7 et il a fonctionné très bien et depuis, je l'ai procédé à d'autres exemples de là.

Vive

Autres conseils

Il ressort de l'erreur que ActiveRecord ne peut pas trouver l'attribut: prenom que vous passez dans le cadre de @valid_attributes. Autrement dit, le problème est pas avec la façon dont vous utilisez RSpec, mais avec les attributs que vous attendez un modèle valable pour contenir.

Vérifiez que vous avez un champ prenom ou attribut sur le modèle Personne - et vérifiez l'orthographe exacte (: prenom vs: prenom ou toute autre variante)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top