You don't really have option (c).  JBehave creates the regex.
You would have to do

@Then("I can view files $this_way")
public void assertFilesViewable(String method) {...}

Brian

----- Original message -----
From: "Bradley, Todd" <[email protected]>
To: "[email protected]" <[email protected]>
Date: Fri, 28 Jan 2011 09:07:54 -0800
Subject: RE: [jbehave-user] regex examples, please

Thanks, Paul.  That looks very helpful.  But the answer to my
question isn’t quite clear to me, so let me rephrase it.


I imagine that as I have more than one QA tester writing stories,
their syntax may not always be the same even when they’re doing
the same thing.  In my example below, one guy’s natural way of
stating the “Then” is to say “Then I can view files without
logging in” but another guy’s way is “Then I can view files in my
browser.”


As the guy implementing the steps in Java, I see both buys meant
the same thing, and I really only need one Java method to do both
of them.  So I could:


a)      Tell the second guy, “Hey, could you rephrase that like
your coworker did?” or

b)      Use an @Alias to say those two complete When clauses are
equivalent or

c)       Write a regular expression that matches both When
clauses


Approaches (a) and (b) are obvious, but I was trying to figure
out how to do (c).  Is it possible?  Or do people who use this
ever do (c)?



Thanks,

Todd.



From: Paul Hammant [mailto:[email protected]]
Sent: Friday, January 28, 2011 9:55 AM
To: [email protected]
Subject: Re: [jbehave-user] regex examples, please


Yup.  JBehave is more "in the box" as its easy to sell as a Junit
plugin.


Take a look at [1]https://github.com/jbehave/jbehave-tutorial

  particularly a dir called etsy-stories/ and the Groovy classes
within.


You'll note that the steps class has a few examples.  The regex
is simpler in JBehave too.  Just use replacement var names (and
JBehave itself makes the actual regex).


You might like to fork that project as a starting point :)


- Paul

On Fri, Jan 28, 2011 at 10:37 AM, Bradley, Todd
<[2][email protected]> wrote:

Hi, I’m a new user of JBehave.  I’m exploring it as a simpler
alternative to Cuke4Duke (and its required technology stack)
since our development environments are almost pure Java.


I’m doing a proof-of-concept using JBehave to test the product I
develop, and am writing various story scenarios.  I’m so much
happier with the “new user” type examples and documentation for
JBehave than for Cucumber/Cuke4Duke.  But I can’t find an example
of using a regular expression to map a string in a When clause to
a Java method.


The page
[3]http://jbehave.org/reference/latest/developing-stories.html
says “JBehave maps textual steps to Java methods
via [4]CandidateSteps. The scenario writer need only provide
annotated methods that match, by regex patterns, the textual
steps.”  I took that to mean I could do something like this in my
Java steps file:


@Then("I can view files.*")

   public void canViewFiles()

   {

// blah blah blah

   }


So that this code would match both


Given I open a new web browser

When I connect to [5]http://ViewSVN

Then I can view files without logging in


And


Given I open a new web browser

When I connect to [6]http://ViewCVS

Then I can view files on my screen



But the @Then(“I can view files.*”) doesn’t match either of
those.  Neither does “I can view files(.*)”  So what kind of
“regex patterns” is the JBehave web page talking about?  Or am I
missing the real meaning of “The scenario writer need only
provide annotated methods that match, by regex patterns, the
textual steps”?



Thanks,

Todd.

References

1. https://github.com/jbehave/jbehave-tutorial
2. mailto:[email protected]
3. http://jbehave.org/reference/latest/developing-stories.html
4. 
http://jbehave.org/reference/latest/javadoc/core/org/jbehave/core/steps/CandidateSteps.html
5. http://ViewSVN/
6. http://ViewCVS/
---
Brian Repko
LearnThinkCode, Inc.
http://www.learnthinkcode.com
email: [email protected]
phone: +1 612 229 6779

Reply via email to