Forum: RSpec [Cucumber 0.2] Failure to use should

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
874be46e8593deadb2cec84b70b26725?d=identicon&s=25 Yi Wen (hayafirst)
on 2009-03-19 15:34
(Received via mailing list)
I have a step definition like this:

Then "the account should be created" do
  account = Account.find_by_name("my shiny new account")
  p account.class
  account.should_not be_blank
end

When running this step, I got the error message:

Account(id: integer, name: string, state: string, next_renewal_at: date,
created_at: datetime, updated_at: datetime, full_domain: string,
deleted_at:
datetime, subscription_discount_id: integer, subscription_plan_id:
integer)

    And the account should be created              #
features/step_definitions/create_account_steps.rb:31
      undefined method `be_blank' for
#<ActionController::Integration::Session:0x349994c> (NoMethodError)
      features/create_account.feature:10:in `And the account should be
created'

I print out the account class, which is a AR::B. Why cucumber tells me
it is
a ActionController::Integration::Session?

I use cucumber 0.2 and rspec 1.2 with Rails 2.3.2

Thanks

Yi
0be0e4aa42aacd9a8a95c792de273ca7?d=identicon&s=25 Aslak Hellesøy (aslakhellesoy)
on 2009-03-19 16:15
(Received via mailing list)
2009/3/19 Yi <hayafirst@gmail.com>

> Account(id: integer, name: string, state: string, next_renewal_at: date,
> created_at: datetime, updated_at: datetime, full_domain: string, deleted_at:
> datetime, subscription_discount_id: integer, subscription_plan_id: integer)
>
>     And the account should be created              #
> features/step_definitions/create_account_steps.rb:31
>       undefined method `be_blank' for
> #<ActionController::Integration::Session:0x349994c> (NoMethodError)
>       features/create_account.feature:10:in `And the account should be
> created'
>

The #be_blank method is defined by a module under 'rspec/matchers'. This
module is automatically included in
ActionController::Integration::Session
if you have the following in your env.rb:

require 'spec/expectations'

Do you? If you just upgraded to Cucumber 0.2 you should probably
rebootstrap
Cucumber with:

script/generate cucumber

Aslak
874be46e8593deadb2cec84b70b26725?d=identicon&s=25 Yi Wen (hayafirst)
on 2009-03-19 16:48
(Received via mailing list)
This is my env.rb

# Sets up the Rails environment for Cucumber
ENV["RAILS_ENV"] ||= "test"
require File.expand_path(File.dirname(__FILE__) +
'/../../config/environment')
require 'cucumber/rails/world'
require 'cucumber/formatters/unicode' # Comment out this line if you
don't
want Cucumber Unicode support
Cucumber::Rails.use_transactional_fixtures

require 'webrat'

Webrat.configure do |config|
  config.mode = :rails
  config.application_address= "myapp.local"
end

require 'cucumber/rails/rspec'
require 'webrat/core/matchers'


The only thing different is:
  config.application_address= "myapp.local"

I tried to comment out this line and it didn't help anyway.

I did script/generate cucumber and it didn't help. :(

Yi

2009/3/19 aslak hellesoy <aslak.hellesoy@gmail.com>
39100495c9937c39b2e0c704444e1b4a?d=identicon&s=25 Pat Maddox (Guest)
on 2009-03-19 17:02
(Received via mailing list)
Right, you need to add
require 'spec/expectations'

because Cucumber doesn't know about RSpec's matchers by default.

Pat

2009/3/19 Yi <hayafirst@gmail.com>:
874be46e8593deadb2cec84b70b26725?d=identicon&s=25 Yi Wen (hayafirst)
on 2009-03-19 23:30
(Received via mailing list)
I thought be_something is actually handled by rspec class Be. be_blank
essentially asks the object blank? predicate. Not that there is a
"be_blank"
method declared anywhere.

Anyway, require 'spec/expectations' doesn't solve the problem. I will
look
into this. Thanks

Yi
874be46e8593deadb2cec84b70b26725?d=identicon&s=25 Yi Wen (hayafirst)
on 2009-03-25 20:02
(Received via mailing list)
Just did a little bit exploration. Found out
http://github.com/carlosbrando/remarkable/tree/master plugin I use
actually
cause the problem. This plugin also broke spec:server:start rake task as
well. :-(
E837f6b7fd146ab16ed3d663476c063e?d=identicon&s=25 José Valim (josevalim)
on 2009-04-30 16:12
(Received via mailing list)
Just for reference, whoever have problem with rspec, remarkable and
cucumber,
try this installation settings:

# config/environments/test.rb
config.gem "rspec", :lib => false
config.gem "rspec-rails", :lib => false
config.gem "remarkable_rails", :lib => false

# spec/spec_helper.rb
require "spec/rails"
require "remarkable_rails"

If you still have problems, be sure to open a ticket on Remarkable bug
tracking:

http://carlosbrando.lighthouseapp.com/projects/197...

Cheers,

--
José Valim
http://josevalim.blogspot.com/
http://github.com/josevalim/


Yi Wen wrote:
>> essentially asks the object blank? predicate. Not that there is a
>> On Thu, Mar 19, 2009 at 10:59 AM, Pat Maddox <pat.maddox@gmail.com>
>>> > This is my env.rb
>>> >
>>> >
>>> >>
>>> >>>
>>> >>> features/step_definitions/create_account_steps.rb:31
>>> >> if you have the following in your env.rb:
>>> >>>
>>> >>> --
>>> >> Aslak (::)
>>> >
>>
>
> _______________________________________________
> rspec-users mailing list
> rspec-users@rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>

--
View this message in context:
http://www.nabble.com/-Cucumber-0.2--Failure-to-us...
Sent from the rspec-users mailing list archive at Nabble.com.
This topic is locked and can not be replied to.