Rspec 2, Rails 3 and Webrat

Hi guys,

I’m trying to port an application to Rails 3 but can’t get my
integration tests to run.

I can’t call the Webrat’s method (yields ‘undefined method visit’, for
instance). I don’t use Cucumber.

Is there any instructions about how to configure Rspec 2 with Webrat on
Rails 3?

I also have a custom helper that is not working:

“config.include MyApp::IntegrationHelper, :type => :integration” (the
methods defined in this module are not available in the specs)

Any ideas?

Thanks,

Rodrigo.


Faça ligações para outros computadores com o novo Yahoo! Messenger

Change the directory name to requests (a la merb)

Sent from my iPhone

On Jun 10, 2010, at 10:35 PM, Rodrigo Rosenfeld R.
<[email protected]

Now I’m getting:

no such file to load – action_controller/integration

Am I missing something?

Thanks,

Rodrigo.

P.S.: Sorry if this was sent twice…

Em 11-06-2010 01:10, David C. escreveu:

remove the :type key from your describe line (it’s no longer needed).

Peter F.
(847) 859-9550
[email protected]
IM GTalk: peter.fitzgibbons
IM AOL: [email protected]

Also, changing the directory name didn’t affect the custom
IntegrationHelper issue…

Rodrigo.

Em 11-06-2010 01:10, David C. escreveu:

Sent from my iPhone

On Jun 11, 2010, at 1:30 PM, Rodrigo Rosenfeld R.
<[email protected]

wrote:

Now I’m getting:

no such file to load – action_controller/integration

Backtrace, please

Thank you, Peter.

Rodrigo.

Em 11-06-2010 14:45, Peter F. escreveu:

Now I’m getting:

no such file to load – action_controller/integration

Am I missing something?

Thanks,

Rodrigo.

Em 11-06-2010 01:10, David C. escreveu:

On Jun 11, 2010, at 10:17 PM, Rodrigo Rosenfeld R. wrote:

Apparently Webrat is not yet compatible with Rails 3:

This is incorrect. It’s just that webrat needs to be configured for
:rack instead of :rails:

  Webrat.configure do |config|
    config.mode = :rack
  end

Since you’re porting an app, there is probably some code somewhere that
says this instead

  # DO NOT DO THIS WITH RAILS 3
  Webrat.configure do |config|
    config.mode = :rails
  end

Get rid of that and you should be fine.

I’m having the same problem the OP mentions – undefined method
“visit”

Trying to upgrade from Rails 2.3 to Rails 3.0.beta4

My test stack:
webrat (0.7.1)
cucumber (0.8.3)
pickle (0.2.1)
factory_girl (1.3.0)
factory_girl_rails (1.0)

I changed config.mode = :rack, as suggested, but I"m still getting the
error.

This is what I have in features/support/env.rb:

require ‘webrat’
require ‘webrat/core/matchers’

Webrat.configure do |config|
config.mode = :rack
config.open_error_files = false # Set to true if you want error
pages to pop up in the browser
end

This is the error I’m getting:

Given I am logged in as a

buyer # features/
step_definitions/user_steps.rb:15
undefined method visit' for #<Cucumber::Rails::World:0xd2f8a2> (NoMethodError) ./features/step_definitions/user_steps.rb:6:inlog_out’
./features/step_definitions/user_steps.rb:37:in do_login' ./features/step_definitions/user_steps.rb:17:in/^I\ am\ logged
\ in\ as\ a\ (.*)$/’
features/buyer_account.feature:7:in `Given I am logged in as a
buyer’

Apparently Webrat is not yet compatible with Rails 3:

line 2: require “action_controller/integration”

action_controller/integration.rb does exist in Rails 2 but not in Rails
3, but I didn’t find any branch for Rails 3 in webrat’s repository.

I’ll give Capybara another try. I had already tried it before but didn’t
change to it because I couldn’t get the Drag & Drop javascript test to
work anyway, but it seems to be a good replacement to Webrat’s and there
seems to be plans to merge them…

Does anyone here use Capybara with Rspec2 and Rails 3 without Cucumber
to write integration tests successfully?

Thanks,

Rodrigo.

Em 11-06-2010 14:44, David C. escreveu:

On Jun 22, 2010, at 11:10 AM, Miriam wrote:

factory_girl_rails (1.0)
config.mode = :rack
(NoMethodError)
./features/step_definitions/user_steps.rb:6:in log_out' ./features/step_definitions/user_steps.rb:37:in do_login’
./features/step_definitions/user_steps.rb:17:in /^I\ am\ logged \ in\ as\ a\ (.*)$/' features/buyer_account.feature:7:in Given I am logged in as a
buyer’

Up until now, this thread has been about an issue with RSpec. You are
having an issue with Cucumber. I’d recommend posting it to the Cucumber
google group:

http://groups.google.com/group/cukes

I’m sure someone there can advise.

Cheers,
David

I did this with webrat 0.7.2, rails 3.0.1, test-unit 2.1.1:

require “webrat”
require ‘webrat/core/matchers’
include Webrat::Methods

Webrat.configure do |config|
config.mode = :rack
end

and for now I can run tests like this:

test “testing_webrat_visit” do
visit ‘home/index’
end

maybe some methods from webrat won’t work, but I haven’t found them yet.