Ok, le débutant total de concombre ici, alors s'il vous plaît soyez doux. En tant qu'étudiant Ruby/Cucumber/MongoDB, je suis en train de construire un simple gestionnaire de contacts. J'ai une personne modèle (parent) et un été capable d'écrire un simple test comme suit:Décrire des objets enfants avec Concombre/MongoDB
Scenario: Show people
Given the following person exists
| firstname | lastname |
| Bob | Jones |
When I am on the home page
Then I should see "Bob"
So far so good .... Je suis cependant Adding un tableau de l'enfant « Adresse » objets à le problème est maintenant que le test ci-dessus échoue .... Je pense que c'est parce que je ne décris plus ma table correctement dans le test ci-dessus, car il a maintenant aussi une propriété d'adresse.
Ma question est de savoir comment écrire correctement le test ci-dessus si je veux vérifier les objets enfants?
Mes deux classes suivent:
class Person < MongoBase
key :firstname, String, :required=>true
key :lastname, String, :required=>true
many :addresses
end
class Address <MongoBase
key :person_id, ObjectId
key :street, String
key :city, String
key :State, String
key :Zip, String
belongs_to :person
end
Merci à l'avance!
Mise à jour: Le test d'origine est maintenant passé mais je n'arrive toujours pas à comprendre comment configurer le test pour que Bob Jones ait une adresse enfant.
Pfft ... comme un message d'erreur a jamais aidé quelqu'un ... lol Il est undefined contast Addres ... qui lecture à haute voix m'a aidé à comprendre ... dans ma classe de personne mon beaucoup: adresse était erronée ... il aurait dû être pluralisé ... Alors maintenant le test initial passe ... mais je me retrouve avec la même question sur la façon d'écrire le test de concombre pour que Bob Jones ait une adresse. – Webjedi
Ahhh - dans la classe step, définissez la table sur un hachage (la table est un argument passé par Cuke) et exécutez un chaque hachage, ce qui charge les données dans le db de test. Donc: table.hashes.each faire | hash | p = Person.new (hash) p.addresses << Adresse.nouveau (...) p.save fin –
Donc dans cet exemple je préciserais la création de l'adresse dans l'étape, pas dans le Cuke ... Je suppose que ça va marcher ... je ne pouvais pas en dire plus sur la façon de dessiner ça avec les pipes de toute façon. :) – Webjedi