Ich bin ein Fan von Mocks und Stubs wo immer ich kann, um meine Spezifikationen schnell laufen zu lassen. Ich bin ein bisschen ratlos, wie ich dies tun könnte die find_special Methode in dem folgenden Test:So testen Sie Assoziationserweiterungslogik in Schienen mit minimalem DB-Overhead
has_many :foos do
def find_special
if proxy_owner.baz
... find stuff
else
... find other stuff
end
end
end
ich dagegen hätte nicht mit der: extend => Modul Syntax für diese, aber ich don‘ Ich denke, es macht einen Unterschied.
Aber ich würde immer noch eine Menge Foo-Objekte machen und sie vor diesem Test in der Datenbank speichern müssen, oder? Ich suche nach einem Weg, wo ich testen könnte, dass die Methode find_special bewirkt, dass Foo.find mit den richtigen Parametern aufgerufen wird, ohne die Abfrage tatsächlich gegen die Datenbank ausführen zu müssen. –
Kürzere Version: Ich weiß, wie man das mit Fabriken/Vorrichtungen testet - ich will sehen, ob ich es ohne sie machen kann. –
Du kannst Items und Foos im Speicher erstellen: Item.new und item.foos.build. Keine Notwendigkeit, die Datenbank zu berühren. – ryanb