Ich habe einen Import-Controller in Rails, der mehrere CSV-Dateien mit mehreren Datensätzen in meine Datenbank importiert. Ich möchte in RSpec testen, ob die Datensätze tatsächlich mithilfe von RSpec gespeichert werden:
<Model>.any_instance.should_receive(:save).at_least(:once)
Ich erhalte jedoch die Fehlermeldung:
The message 'save' was received by <model instance> but has already been received by <another model instance>
Ein erfundenes Beispiel für die Steuerung:
rows = CSV.parse(uploaded_file.tempfile, col_sep: "|")
ActiveRecord::Base.transaction do
rows.each do |row|
mutation = Mutation.new
row.each_with_index do |value, index|
Mutation.send("#{attribute_order[index]}=", value)
end
mutation.save
end
Ist es möglich, dies mit RSpec zu testen, oder gibt es eine Problemumgehung?