Ich verwende Gurke mit Watir Web-Browser, um Tests zu automatisieren. Ich verwende Watir, um ein Webformular auszufüllen, das ein Modell in meiner Datenbank speichert. Wenn ich jedoch versuche, mit ActiveRecord zu bestätigen, dass der Datensatz vorhanden ist, gibt meine Suche keine Ergebnisse zurück. Ich nehme an, ich könnte Watir benutzen, um jeden Schritt meiner Tests zu automatisieren, aber in Zukunft wird meine Testsuite SEHR langsam laufen.Beim Ausführen von Rake: Gurke ActiveRecord Modelle können nicht auf die gleiche Datenbank zugreifen wie App
Meine Funktion:
Feature: Creating a campaign
As someone with too much time on my hands
I want to create a campaign
So that I can monitor my roleplaying campaigns
Scenario: Adding a Campaign
Given I am at the site
When I create a campaign "The Hills" with a setting "Cali"
Then the campaign should persist in the system
Mein Schritt Definitionen:
Given /^I create a campaign "([^"]*)" with a setting "([^"]*)"$/ do |name, setting|
@browser.text_field(:id => "campaign_campaign_name").set name
@browser.text_field(:id => "campaign_setting").set setting
@browser.button(:value => "Create Campaign").click
@campaign_name = name
@setting = setting
end
Then /^the campaign should persist in the system$/ do
@browser.text.should =~ /#{@campaign_name}/
@browser.text.should =~ /#{@setting}/
@database_campaign = Campaign.where(:campaign_name => @campaign_name)[0]
@database_campaign.campaign_name.should == @campaign_name
end
HINWEIS: Ich habe versucht, explizit eine Verbindung zu meiner Testdatenbank Festlegung, aber das hat nicht funktioniert entweder. Ich habe eine Ruby-Datei in das Support-Verzeichnis geschrieben, das folgendes enthält:
def establish_connection_to_test_database
begin
ActiveRecord::Base.establish_connection :test
rescue
raise "You have not established a connection to the test database"
end
end
establish_connection_to_test_database
Danke für den Vorschlag, ich werde versuchen zu sehen, ob der Schlaf hilft. Um ehrlich zu sein, setze ich diese direkte Modellzugriffsassoziation hier nur als Beispiel, ich möchte ActiveRecord wirklich für Schritt-Setup und Teardown mehr als Testverhalten verwenden. Ich stimme zu, dass Datenbankzugriffsprüfungen nicht die beste Wahl für Integrationstests sind. –