Rails / RSpec: Comment tester la méthode #initialize?
Comment puis-je spécifier #initialize
comportement avec RSpec? Par exemple ici:
générateur.rb
class Generator
attr_accessor :seed
def initialize(seed = nil)
@seed = seed || pick_seed
end
def pick_seed
Time.now.to_i
end
end
generator_spec.rb
require 'generator'
describe Generator
it "calls 'pick_seed' method unless seed specified" do
end
end
J'aimerais définir les attentes que pick_seed
méthode est appelée à partir #initialize
méthode.
source d'informationauteur avsej
Vous devez vous connecter pour publier un commentaire.
Pour moi, les attentes sont sur la conception de conversations entre les collaborateurs. Donc, vous avez à décider - est
#pick_seed
une mise en œuvre interne de détail ou d'une partie de la collaboration du rôle d'interface?Si
pick_seed
est un détail d'implémentation, une attente est le bon outil pour le travail. Et, puisque vous avez un accesseur pour la postérité, vous pouvez procéder de la même manière (avis de celui-affirmation par exemple):Otoh, que, si le prélèvement de la semence est la partie de la "semence sélecteur de" le rôle, puis se moque de sont précieux dans la conception de la graine de sélecteur, et l'injection de dépendance est une méthode standard de l'attribution des rôles. Vous pouvez écrire quelque chose comme: