Given(/^... named "(.*)"$/) |name|
Thing.create name: name
add_named_record name: name, record: thing
end
Given(/^... named "(.*)" has stuff$/) |name|
thing = fetch_named_record name: name
thing.do_stuff
end
Last active
April 15, 2016 15:33
-
-
Save KBalderson/2d79b2d443d280173b1d8deab7386cc3 to your computer and use it in GitHub Desktop.
Getting Rails Records by name in Cucumber (even if they don't have a name)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# features/support/named_records.rb | |
module NamedRecords | |
def add_named_record(name: nil, record: nil, class_name: nil, id: nil) | |
if record | |
class_name = record.class.name | |
id = record.id | |
end | |
named_records[name] = { | |
class_name: class_name, | |
id: id | |
} | |
end | |
def fetch_named_record(name) | |
named_records[name][:class_name].constantize.find named_records[name][:id] | |
end | |
def named_records | |
@named_records ||= {} | |
end | |
end | |
World(NamedRecords) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment