10
votes

Comment résoudre le mauvais nombre d'arguments Factory_girl

#rspec test code
@room = FactoryGirl.build(:room)

#factory definition
factory :room do
  length {10}
  width {20}
end

#code implementation
class Room
  attr_accessor :length, :width

  def initialize(length,width)
     @length = length
     @width = width 
  end

end
Running rspec results in this error when trying to build the @room
  
    ArgumentError:
           wrong number of arguments (0 for 2)
  

0 commentaires

3 Réponses :


10
votes

FactoryGirl code> ne supporte pas actuellement les initialisateurs avec des arguments. Donc, il échoue quand il essaie de faire salle.Nouveau code> lorsque vous exécutez Build code>.

Une solution de contournement simple pour cela pourrait être à monkey-patch vos classes dans votre configuration de test pour contourner ce problème. Ce n'est pas la solution idéale, mais vous pourrez exécuter vos tests. P>

Vous devez donc faire l'une des deux (juste dans votre code de configuration de test): P>

class Room
  def initialize
    ...
  end
end


1 commentaires

Merci, quelle erreur inattendue, je pensais à moi :-)



23
votes

maintenant ça fait. Testé sur la version 4.1: xxx

fin

référence: documentation


0 commentaires

0
votes

Qu'est-ce qui a été utile pour moi, ce qui permettrait à la sortie de débogage de l'usinebot sort: xxx

voir La documentation pour les détails


0 commentaires