Skip to content

Instantly share code, notes, and snippets.

@KBalderson
Last active April 15, 2016 15:33
Show Gist options
  • Save KBalderson/2d79b2d443d280173b1d8deab7386cc3 to your computer and use it in GitHub Desktop.
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)

Usage

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
# 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