Forum: RSpec Cucumber namespace problem

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.
77dae8923911b83d3d4e1fbb22d95cd8?d=identicon&s=25 Emmanuel Pinault (Guest)
on 2009-01-02 19:23
(Received via mailing list)
Hi

I am having an issue with Cucumber where I am writing in one files
some steps where rspec matcher do not seem to be accessible.

So I have a file with my steps  written like this

require 'steputils'

Given "some step description 1 " do
  SomeClass.post(args)
end

Given "some step description 2 that is slighty different for better
readability "  do
  SomeClass.post(args)
end


and in steputils I have

class Steputils

  def self.post(args)
    args.should_not be_empty
  end
end


But the code breaks when trying to run args.should_not be_empty that
are valid rspec matchers.. Seems like it is not recognizing it. I
tried to include Cucumber and Spec as part of my class
but still not working. Any idea what I need to do to make it work?
This will help refactoring some of the steps that may have similar code

Also, is there a way to see all the existing step using the cucumber
methods? because when you have a lot it would be nice to have a way to
describe them for documentation purpose (like  Rake does for task)

Thanks

Emmanuel
0be0e4aa42aacd9a8a95c792de273ca7?d=identicon&s=25 Aslak Hellesøy (aslakhellesoy)
on 2009-01-02 19:43
(Received via mailing list)
On Fri, Jan 2, 2009 at 7:20 PM, Emmanuel Pinault <seatmanu@gmail.com>
wrote:

>        SomeClass.post(args)
> class Steputils
>
>        def self.post(args)
>                args.should_not be_empty
>        end
> end
>
>
> But the code breaks when trying to run args.should_not be_empty that are
> valid rspec matchers.. Seems like it is not recognizing it. I tried to
> include Cucumber and Spec as part of my class


Please post the full error message and backtrace.

Did you require 'spec' in your support/env.rb file?

Aslak
D069ac0170dc6c93bad77734258fadae?d=identicon&s=25 Peter Jaros (Guest)
on 2009-01-02 19:47
(Received via mailing list)
On Fri, Jan 2, 2009 at 1:20 PM, Emmanuel Pinault <seatmanu@gmail.com>
wrote:

>        SomeClass.post(args)
> end
Is that code right?  It looks to me like Steputils.post is never
getting called.  You're calling SomeClass.post instead.

Peter
77dae8923911b83d3d4e1fbb22d95cd8?d=identicon&s=25 Emmanuel Pinault (Guest)
on 2009-01-02 20:03
(Received via mailing list)
I think I  found a solution to my problem. in the Steputils class,
instead of including, I perform an extend on Spec::Matcher
so my class look like

>
> class Steputils
>
  extend Spec::Matchers

>        def self.post(args)
>                args.should_not be_empty
>        end
> end

Now all the Matcher are visible in my class and tests are running
fine  again

Thanks

Emmanuel
77dae8923911b83d3d4e1fbb22d95cd8?d=identicon&s=25 Emmanuel Pinault (Guest)
on 2009-01-02 20:19
(Received via mailing list)
Sorry, I made up the example to explain my problem but yes, it should
be Steputils. post in each of the steps.

But the problem was calling a spec matcher within that class. My
solution to get it i to work is to extend my class with Spec::Matcher

Thanks

Emmanuel
Ee6788c2faaad7a5cd0bc466c9ea60d8?d=identicon&s=25 aidy lewis (Guest)
on 2009-01-02 21:11
(Received via mailing list)
Hi Aslak,

2009/1/2 aslak hellesoy <aslak.hellesoy@gmail.com>:

> Did you require 'spec' in your support/env.rb file?

Is it now a standard to put the env.rb in the 'support' folder? Mine
is in the 'steps' folder?

Regards

Aidy
5d38ab152e1e3e219512a9859fcd93af?d=identicon&s=25 David Chelimsky (Guest)
on 2009-01-02 21:15
(Received via mailing list)
On Fri, Jan 2, 2009 at 2:04 PM, aidy lewis <aidy.lewis@googlemail.com>
wrote:
> Hi Aslak,
>
> 2009/1/2 aslak hellesoy <aslak.hellesoy@gmail.com>:
>
>> Did you require 'spec' in your support/env.rb file?
>
> Is it now a standard to put the env.rb in the 'support' folder? Mine
> is in the 'steps' folder?

That's the direction, yes.

features/step_definitions #for step definitions
features/support             #for everything else
0be0e4aa42aacd9a8a95c792de273ca7?d=identicon&s=25 Aslak Hellesøy (aslakhellesoy)
on 2009-01-02 21:23
(Received via mailing list)
On Fri, Jan 2, 2009 at 9:11 PM, David Chelimsky
<dchelimsky@gmail.com>wrote:

>
You can keep it wherever you want, but a recent new feature is that ruby
files in the support dir get loaded before any other dir.
This is needed in some cases. See History.txt on GitHub.
This topic is locked and can not be replied to.