Forum: RSpec Integration testing without cucumber

Posted by drewB (Guest)
on 2010-03-01 21:43
(Received via mailing list)
I need to create some integration tests without cucumber. Can anyone
point me in the right direction for how to do that in rails?  I tried
creating specs under 'spec/integration/' but no matchers are being
included.  I also tried rspec_integration plugin (http://github.com/
tricycle/rspec-integration) but that only defines a few matchers and
response.should be_success doesn't work properly.

Any help you can provide would be much appreciated!
Posted by Joseph Wilk (josephwilk)
on 2010-03-01 22:30
(Received via mailing list)
drewB wrote:
> I need to create some integration tests without cucumber. Can anyone
> point me in the right direction for how to do that in rails?  I tried
> creating specs under 'spec/integration/' but no matchers are being
> included.  I also tried rspec_integration plugin (http://github.com/
> tricycle/rspec-integration) but that only defines a few matchers and
> response.should be_success doesn't work properly.
>
> Any help you can provide would be much appreciated!
>   

You should not need any magic to get rspec working.

In order to run integration specs I've been using a very simple
spec_helper.rb.

Maybe this can be some help to you;

http://gist.github.com/318821

--
Joseph Wilk
http://blog.josephwilk.net
http://www.songkick.com
mob: +44(0)7812816431
Posted by Wincent Colaiuta (Guest)
on 2010-03-01 23:13
(Received via mailing list)
El 01/03/2010, a las 21:32, drewB 
escribió:
> I need to create some integration tests without cucumber. Can anyone
> point me in the right direction for how to do that in rails?  I tried
> creating specs under 'spec/integration/' but no matchers are being
> included.  I also tried rspec_integration plugin (http://github.com/
> tricycle/rspec-integration) but that only defines a few matchers and
> response.should be_success doesn't work properly.
> 
> Any help you can provide would be much appreciated!

You could try Steak:

http://github.com/cavalle/steak

Cheers,
Wincent
Posted by drewB (Guest)
on 2010-03-02 00:02
(Received via mailing list)
Belwo is a spec that when used with the default spec_helper fails
with:

NoMethodError in 'test matchers should be able to find be_success'
undefined method `be_success' for
#<ActionController::Integration::Session:0x7fc081ef13e0>

----------

require 'spec_helper'

describe "test matchers" do
  it "should be able to find be_success" do
    get '/'
    response.should be_success
  end

end
Posted by David Chelimsky (Guest)
on 2010-03-02 00:15
(Received via mailing list)
On Mon, Mar 1, 2010 at 4:59 PM, drewB <dbatshaw@gmail.com> wrote:
>
> describe "test matchers" do
>  it "should be able to find be_success" do
>    get '/'
>    response.should be_success
>  end
>
> end

Try adding this to spec/spec_helper.rb

Spec::Runner.configure {|c| c.include Spec::Matchers}
Posted by drewB (Guest)
on 2010-03-02 01:18
(Received via mailing list)
That fixed it! Thanks!

Any idea why that was needed for integration specs and not MVCs?
Posted by drewB (Guest)
on 2010-03-02 18:55
(Received via mailing list)
Looks like I spoke too soon.  I made a mistake when testing your
suggest.  When I add that I still get the same failure.
Posted by David Chelimsky (Guest)
on 2010-03-03 00:56
(Received via mailing list)
On Tue, Mar 2, 2010 at 11:53 AM, drewB <dbatshaw@gmail.com> wrote:
> Looks like I spoke too soon.  I made a mistake when testing your
> suggest.  When I add that I still get the same failure.

I just did the following using rails 2.3.5, rspec 1.3.2 and rspec-rails 
1.3.0:

$ rails foo
$ cd foo
$ script/generate rspec
$ mkdir spec/integration
$ script/generate integration_spec widgets
$ rake db:migrate && db:test:prepare

Then I modified spec/integration/widgets_spec.rb as follows:

require 'spec_helper'

describe "Widgets" do
  it "shows me the list" do
    get "/widgets"
    response.should be_success
  end
end

Then I ran this:

$ script/spec spec/integration/

And here's the output I saw:

F

1)
'Widgets ..' FAILED
expected success? to return true, got false
/Users/dchelimsky/tmp/foo/spec/integration/widgets_spec.rb:6:

So everything is working as it should on a fresh app. Did you update
spec/spec_helper.rb the last time you upgraded the app? Are you using
an earlier version of rspec-rails or rspec?
Posted by drewB (Guest)
on 2010-03-03 19:31
(Received via mailing list)
Let me start by saying thank you for the time you are spending helping
me.

It appears to be a rails version issue.  I ran though the same steps
you outlined on my machine and continued to get the same error
message, "undefined method `be_success'".  I am running rspec 1.3.0,
rspec-rails 1.3.2, rails 2.3.4.  When I upgraded to rails 2.3.5 and
tried again, everything worked.

The project I am working on is frozen at rails 2.1.2 so am still
looking for a way to get this to work with rails 2.1.2.  Should I
downgrade to an earlier version of RSpec or spec-rails?  If so, which
one?
Posted by David Chelimsky (Guest)
on 2010-03-03 19:41
(Received via mailing list)
On Wed, Mar 3, 2010 at 12:24 PM, drewB <dbatshaw@gmail.com> wrote:
> Let me start by saying thank you for the time you are spending helping
> me.

You're welcome.

> It appears to be a rails version issue.  I ran though the same steps
> you outlined on my machine and continued to get the same error
> message, "undefined method `be_success'".  I am running rspec 1.3.0,
> rspec-rails 1.3.2, rails 2.3.4.  When I upgraded to rails 2.3.5 and
> tried again, everything worked.
>
> The project I am working on is frozen at rails 2.1.2 so am still
> looking for a way to get this to work with rails 2.1.2.  Should I
> downgrade to an earlier version of RSpec or spec-rails?  If so, which
> one?

1.3.2 is tested against the last fix release of each series: 2.3.5,
2.2.2, 2.1.2, 2.0.5. So it should work with 2.1.2. If not, it's a bug,
so go ahead and file a bug report at http://rspec.lighthouseapp.com -
feel free to reference this thread.

Cheers,
David
Posted by drewB (Guest)
on 2010-03-04 18:29
(Received via mailing list)
Bug filed.  Any idea about an earlier version that I might try?
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.