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
On Fri, Jan 2, 2009 at 7:20 PM, Emmanuel P. [email protected]
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
On Fri, Jan 2, 2009 at 1:20 PM, Emmanuel P. [email protected]
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
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
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
On Fri, Jan 2, 2009 at 2:04 PM, aidy lewis [email protected]
wrote:
Hi Aslak,
2009/1/2 aslak hellesoy [email protected]:
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
On Fri, Jan 2, 2009 at 9:11 PM, David C.
[email protected]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.
Hi Aslak,
2009/1/2 aslak hellesoy [email protected]:
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