ActiveRecord::Base
ha una grande API ol con più metodi per trovare e salvare oggetti. Ad esempio, i AR::B
oggetti potrebbero essere stati istanziato da una serie di metodi:Come si disattivano i metodi ActiveRecord :: Base senza fare supposizioni su come vengono utilizzati?
Foo.new(…)
Foo.create(…)
Foo.find(…)
Foo.find_by_sql(…)
Foo.find_[all_]by_*(…)
bar.foos
(associazioni)- ... e finder metodi su associazioni, naturalmente
Allo stesso modo, l'oggetto in questione potrebbe avere persistito da alcuni metodi differenti:
foo.create
ofoo.create!
foo.save
ofoo.save!
foo.update_attributes
ofoo.update_attributes!
Ora, durante la scrittura dei test di unità, è consigliabile interrompere le chiamate di metodo esterne in modo che il test possa concentrarsi sulla logica di business del metodo in questione. Tuttavia, quando si tratta di lavorare con gli oggetti AR::B
- ad esempio nei test dell'unità controller - sembra che tu debba impegnarsi in uno dei metodi sopra elencati, quando in realtà per quanto riguarda la logica di business del metodo non dovrebbe essere importante che scegli.
Devi accoppiare questo comportamento con la sua implementazione o mi manca qualcosa di semplice?