[rspec-users] Testing Models without fixtures

David Chelimsky dchelimsky at gmail.com
Tue Nov 20 11:20:16 EST 2007


On Nov 20, 2007 10:18 AM, Nathan Sutton <nathan.sutton at gmail.com> wrote:
> You may want to create a factory method to create users with valid
> parameters, overriding any parameters by passing in options.
>
> ALPHA = ('a'..'z').to_a + ('A'..'Z').to_a
>
> def random_text
>         txt = ""
>         10.times do
>                 txt << ALPHA[rand(52)]
>         end
>         txt # maybe a returning block?  can't remember if that works here
> end
>
> def create_user(options={})
>         User.create!({ :name =>  random_text,
>                                   :password => random_text}.merge(options))
> end

There are also tools that will do this for you: Exemplar,
ModelStubbing to name two.

>
> Nathan Sutton
> fowlduck at gmail.com
> rspec edge revision 2910
> rspec_on_rails edge revision 2909
> rails edge revision 8167
>
>
>
>
>
>
> On Nov 20, 2007, at 8:59 AM, Raimond Garcia wrote:
>
> > Wow,
> >
> > Thanks Dave, that worked :)
> > I had tried before deleting all users and creating a couple of new
> > ones, was wondering why it didn't work.
> > The problem was that I was using the create method instead of create!,
> > thus, my users where silently being validated and not saved, as I was
> > missing the password parameters and the such.
> >
> > Thanks again!
> > Keep up the great work with rSpec!
> >
> > Rai
> >
> > On Nov 20, 2007, at 3:40 PM, David Chelimsky wrote:
> >
> >> On Nov 20, 2007 6:57 AM, Raimond Garcia <voodoorai2000 at gmail.com>
> >> wrote:
> >>> Hi,
> >>>
> >>> I would like to test a sorting method that is in the user model,
> >>> it's
> >>> a class method called search.
> >>> What I would like to do is create 2 users and load the test database
> >>> with just those 2 users, so that I can call
> >>> User.search("john") and it would return those two users.
> >>>
> >>> Not sure how to clear the test database and populate it just with
> >>> these 2 users for that specific spec.
> >>
> >> User.delete_all
> >> User.create!(:name => "John")
> >> User.create!(:name => "George")
> >>
> >>>
> >>> Thanks in advance!
> >>>
> >>> Rai
> >>> _______________________________________________
> >>> rspec-users mailing list
> >>> rspec-users at rubyforge.org
> >>> http://rubyforge.org/mailman/listinfo/rspec-users
> >>>
> >> _______________________________________________
> >> rspec-users mailing list
> >> rspec-users at rubyforge.org
> >> http://rubyforge.org/mailman/listinfo/rspec-users
> >
> > _______________________________________________
> > rspec-users mailing list
> > rspec-users at rubyforge.org
> > http://rubyforge.org/mailman/listinfo/rspec-users
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>


More information about the rspec-users mailing list