3

Wie testen Sie am besten ein Modell, das in Rails eine andere Datenbankverbindung verwendet. Zum Beispiel habe ich ein Modell FooBar, die nur gelesen wird:Testen von Modellen mit mehreren Datenbankverbindungen in Rails mit ActiveRecord

class FooBar < ActiveRecord::Base 
    establish_connection configurations['foo_bars'] 
    # ... 
end 

Gibt es gute Konventionen, Hacks oder Plugins da draußen?

+0

Wenn es schreibgeschützt ist ... was genau testen Sie? Ich nehme an (weil es schreibgeschützt ist), dass die Daten von woanders eingegeben werden und Rails es gerade verbraucht? –

+0

Ich teste einige Abfragelogik. Und FooBar kann gegen Tabellen aus derselben Datenbank (Verbindung) beitreten. Ich möchte auch die Interaktivität von FooBar mit anderen Modellen testen. – newtonapple

Antwort

1

Nach meiner Erfahrung können Sie das Modell nach dem Herstellen der Verbindung wie jedes andere Modell behandeln. Da Sie nur die Daten konsumieren, die einige der Tests vereinfachen, müssen Sie nicht auf Datenvalidierungen testen.

Offensichtlich, da Rails mit zwei verschiedenen Datenbanken von zwei verschiedenen Modellen kommuniziert, können Sie keine Joins zwischen den Datenbanken machen und so wird es auch dort nichts zu testen geben.

Also, um die Frage zu beantworten: Was ist der beste Weg, ein Modell zu testen, das eine zweite Datenbank verwendet? Ich würde sagen, genau so, wie Sie es testen würden, wenn es Ihre einzige Datenbank wäre.

finde ich, dass in meiner Modelle, die mein Vermächtnis Datenbanken wickeln ich einige spezielle Bindung in Code hinzufügen, die Dinge ein wenig mehr „Rails-y“ und macht die Ansicht und Controller-Code aussehen wie es has_one und belongs_to Typ macht Code drin. Ich habe Tests, die diese benutzerdefinierten Methoden anwenden.

Hoffnung, das hilft.

Verwandte Themen