[rspec-users] be_true and be_false are suddenly undefined

aslak hellesoy aslak.hellesoy at gmail.com
Fri Dec 25 20:51:26 EST 2009


> I tried to reproduce....very strange
> I'm back to being confused again.
> ..as to why of course
>
> in my blank, demo project I ran
> > script/generate --webrat --rspec --testunit
> it does produce a different env.rb file
> -- without a "require cucumber/rails/rspec" statement
>
> but the be_true still works. ?????
>
> does this make any sense?
>
>
RSpec and Test::Unit are two complimentory libraries for making low-level
assertions, so you want to pick one and only one.

I would love to get some insight into why you tried both at the same time.
I'm always trying to write software and documentation that is as intuitive
as possible, but I'm realising I'll never quite get there.

Aslak


> ===================================
> the demo project env.rb file now looks like:
>
> ENV["RAILS_ENV"] ||= "cucumber"
> require File.expand_path(File.dirname(__FILE__) + '/../../config/
> environment')
>
> require 'cucumber/formatter/unicode' # Remove this line if you don't
> want Cucumber Unicode support
> require 'cucumber/rails/world'
> require 'cucumber/rails/active_record'
> require 'cucumber/web/tableish'
>
> require 'webrat'
> require 'webrat/core/matchers'
> require 'cucumber/webrat/element_locator' # Deprecated in favor of
> #tableish - remove this line if you don't use #element_at or #table_at
>
> Webrat.configure do |config|
>  config.mode = :rails
>  config.open_error_files = false # Set to true if you want error
> pages to pop up in the browser
> end
>
> ===============================
> after running
> > script/generate --webrat --rspec
>
> it looks like: ( oh, and be_true and be_false still work!)
>
> ENV["RAILS_ENV"] ||= "cucumber"
> require File.expand_path(File.dirname(__FILE__) + '/../../config/
> environment')
>
> require 'cucumber/formatter/unicode' # Remove this line if you don't
> want Cucumber Unicode support
> require 'cucumber/rails/rspec'
> require 'cucumber/rails/world'
> require 'cucumber/rails/active_record'
> require 'cucumber/web/tableish'
>
> require 'webrat'
> require 'webrat/core/matchers'
> require 'cucumber/webrat/element_locator' # Deprecated in favor of
> #tableish - remove this line if you don't use #element_at or #table_at
>
> Webrat.configure do |config|
>  config.mode = :rails
>  config.open_error_files = false # Set to true if you want error
> pages to pop up in the browser
> end
>
>
>
> On Dec 25, 5:22 pm, Doug <dgoldi... at gmail.com> wrote:
> > I figured it out last night.
> > ...sorry I didn't post then
> >
> > I created a blank rails project and used:
> > $ script/generate --webrat --rspec
> >
> > then compared the features/support/env.rb; mine was missing:
> > require 'cucumber/rails/rspec'
> >
> > after adding that statement, the be_true and be_falses worked fine
> > then I removed all the other requires as you suggested above
> >
> > NOTE: I believe that's the way the file was generated. I don't
> > remember editing the env.rb file -- per the instructions, but I don't
> > remember.
> > using the options: --webrat --rspec --testunit
> > .....Now I only included the option for testunit out of curiousity;
> > was that a mistake?
> >
> > I'll try to reproduce it.
> >
> > thanks
> >
> > On Dec 25, 2:45 am, aslak hellesoy <aslak.helle... at gmail.com> wrote:
> >
> > > > I agree....
> >
> > > > I did notice that my feature/support/my_env.rb (custom) had:
> > > > require 'spec'
> > > > require 'spec/rails'
> >
> > > > so I changed first line
> > > > require 'spec/autorun'
> >
> > > You shouldn't do that. You don't want the RSpec runner to run when
> you're
> > > using Cucumber.
> > > In fact, you shouldn't do any RSpec requires in my_env.rb at all - all
> that
> > > setup is done in env.rb.
> >
> > > > in keeping with
> > > >http://wiki.github.com/dchelimsky/rspec/configgem-for-rails
> >
> > > > seems to me that really should do it, but it doesn't work.????
> >
> > > I'm assuming you have followed the upgrade instructions that Matt
> mentioned.
> > > However your setup still seems broken so I'm wondering if you
> succeeded.
> >
> > > Could you pastie or gist your env.rb and my_env.rb files so we can take
> a
> > > peek?
> >
> > > I've tried requiring spec_helper, etc. putting the requires closer to
> >
> > > > my code.,etc.
> >
> > > You should never load your spec_helper.rb from Cucumber.
> >
> > > nothing works!!!!
> >
> > > > btw: be_true and be_false work in my existing spec test; it's just in
> > > > cucumber steps.
> >
> > > > ????
> >
> > > > On Dec 24, 1:14 am, Matt Wynne <m... at mattwynne.net> wrote:
> > > > > On 24 Dec 2009, at 06:09, Doug wrote:
> >
> > > > > > after upgrading cucumber to 5.1 be_true and be_false are
> undefined
> > > > > > switching to == true  or == false works.
> >
> > > > > > ??? thanks.
> >
> > > > > The rails integration changed quite a bit for that release. See [1]
> > > > > plus a few recent threads on this list.
> >
> > > > > It sounds like your specific problem is you don't have rspec's
> > > > > matchers required anymore.
> >
> > > > > [1]http://wiki.github.com/aslakhellesoy/cucumber/upgrading
> >
> > > > > >    Then there is an invalid item with 1 "upc"
> > > > > > error                     # features/step_definitions/
> > > > > > extract_steps.rb:
> > > > > > 56
> > > > > >      undefined method `be_true' for
> > > > > > #<ActionController::Integration::Session:0x104bc7820>
> (NoMethodError)
> > > > > >      ./features/step_definitions/extract_steps.rb:45:in
> `/^retrieve
> > > > > > file$/'
> >
> > > > > > Then /^retrieve file$/ do
> > > > > >  basename = File.basename(@filename)
> > > > > >  ExtractReport.exists?(:file_name => basename).should ==
> > > > > > true                   **** this is line 45
> > > > > >  @file = ExtractReport.find_by_file_name(basename)
> > > > > >  count = @file.record_count.to_i - 2 # count includes header and
> > > > > > trailer
> > > > > >  @file.should have(count).items
> > > > > > end
> > > > > > _______________________________________________
> > > > > > rspec-users mailing list
> > > > > > rspec-us... at rubyforge.org
> > > > > >http://rubyforge.org/mailman/listinfo/rspec-users
> >
> > > > > cheers,
> > > > > Matt
> >
> > > > >http://mattwynne.net
> > > > > +447974 430184
> >
> > > > > _______________________________________________
> > > > > rspec-users mailing list
> > > > > rspec-us... at rubyforge.orghttp://
> > > > rubyforge.org/mailman/listinfo/rspec-users
> > > > _______________________________________________
> > > > rspec-users mailing list
> > > > rspec-us... at rubyforge.org
> > > >http://rubyforge.org/mailman/listinfo/rspec-users
> >
> > > _______________________________________________
> > > rspec-users mailing list
> > > rspec-us... at rubyforge.orghttp://
> rubyforge.org/mailman/listinfo/rspec-users
> >
> > _______________________________________________
> > rspec-users mailing list
> > rspec-us... at rubyforge.orghttp://
> rubyforge.org/mailman/listinfo/rspec-users
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/rspec-users/attachments/20091226/4c1644d0/attachment.html>


More information about the rspec-users mailing list