[rspec-users] be_true and be_false are suddenly undefined

Doug dgoldie15 at gmail.com
Fri Dec 25 23:04:41 EST 2009


Aslak,

I have admit, when I saw the option: testunit, I was just curious as
to what it would do
.....assumed it would be something additional...I guess

we have some critical legacy unit/integration tests that will probably
survive forever.
but going forward everything is rspec and cucumber
in cucumber steps, I'm only using rspec assertions/matchers

we do have some complex test setup requirements that we are currently
satisfying with methods in rspec -- shared with cucumber steps.
..that seems to work, but is slow of course
may try to replace with some pickle / machinist, not sure

thanks again,

-doug.

On Dec 25, 5:51 pm, aslak hellesoy <aslak.helle... at gmail.com> wrote:
> > 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-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


More information about the rspec-users mailing list