FixtureReplacement cheatsheetEdit
Note: This cheatsheet applies to the the original 1.x series of FixtureReplacement. Version 2.0, which I’ve never bothered updating to ("if it ain’t broke…"), uses a completely different syntax (see http://replacefixtures.rubyforge.org/ for full details).
The db/example_data.rb
file
Given a model class, Foo
:
module FixtureReplacement
def foo_attributes
{
:thing => "a value",
:other => "other value",
:another => String.random, # random string 10 characters long
:one_more => String.random(15) # 15 characters long
:associated_object => default_bar # expects bar_attributes to be defined
}
end
end
Methods available
String.random
: generates a random string as shown above.
new_foo
: equivalent to Foo.new(foo_attributes)
.
create_foo
: equivalent to Foo.create!(foo_attributes)
.
default_foo
: for use inside _attributes
definitions; this basically returns a Proc
object which allows the actual creation of the object to be deferred until it is actually needed: in this way unnecessary object creation is avoided until it is known for sure that that particular attribute is not going to be overridden.
Overriding the default attributes
new_foo(:thing => "overridden")
create_post(:thing => "overridden")
script/console
use
$ script/console
>> include FixtureReplacement
Use with RSpec
String.random
: generates a random string as shown above.new_foo
: equivalent to Foo.new(foo_attributes)
.create_foo
: equivalent to Foo.create!(foo_attributes)
.default_foo
: for use inside _attributes
definitions; this basically returns a Proc
object which allows the actual creation of the object to be deferred until it is actually needed: in this way unnecessary object creation is avoided until it is known for sure that that particular attribute is not going to be overridden.new_foo(:thing => "overridden")
create_post(:thing => "overridden")
script/console
use
$ script/console
>> include FixtureReplacement
Use with RSpec
$ script/console
>> include FixtureReplacement
Add the following to your spec/spec_helper.rb
file:
include FixtureReplacement