2016-09-13 2 views
0

Ich habe einige Code, der beim Start die Methode collect_money aufruft. In regelmäßigen Abständen wird die Methode collect_money asynchron aufgerufen (ereignisbasiert usw.). Ich möchte collect_money eine Ausnahme auslösen, z. B. NoMoney gelegentlich, aber nicht jedes Mal und definitiv nicht das erste Mal, dass es ausgeführt wird. Ist das möglich? Wenn nicht, was wäre der alternative/empfohlene Weg, um dies zu erreichen?wie Ausnahmen in rspec nur für einige Methodenaufrufe ausgelöst werden

Antwort

0

Es ist eine gute Idee, deterministische Tests zu haben, so dass ein Test bestanden oder immer konsequent fehlschlägt.

Sie können diese Methode Stummel und einen Zähler verwenden innen:

#assuming that obj has the method collect_money 
allow(obj).to receive(:collect_money) do 
    @counter ||= 0 
    @counter += 1 
    fail NoMoney if counter > 3 # raise exception in 4th call 
    # ... return something useful in other cases 
end 
Verwandte Themen