I have just created this demo project using Selenium, gradle, Jbehave and Serenity
https://github.com/mubbashir/jbehave-selenium-bdd
The other things I loved about Serenity is the it has wonderful reports for BDD "Serenity also uses the test results to produce illustrated, narrative reports that document and describe what your application does and how it works."
See:
https://github.com/mubbashir/jbehave-selenium-bdd
Why add Serenity?
Serenity adds plugins to Jbehave and makes it a lot easier to write acceptance tests as mentioned on it site Serenity BDD helps you write cleaner and more maintainable automated acceptance and regression tests faster.The other things I loved about Serenity is the it has wonderful reports for BDD "Serenity also uses the test results to produce illustrated, narrative reports that document and describe what your application does and how it works."
See:
Structure
├── ReadMe.md ## ReadME file of cource ;)
├── build.gradle ## gradle build file
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew ## grdadle warapper
├── src
│ └── test
│ ├── java
│ │ └── test
│ │ ├── WebTest.java ## This is where the tests resides which add all the steps using net.serenitybdd.jbehave.SerenityStepFactory
│ │ └── selenium
│ │ ├── page ## This where all the pages extending net.serenitybdd.core.pages.PageObject
│ │ │ ├── google
│ │ │ │ └── GoogleLanding.java
│ │ │ └── interfaces
│ │ │ └── Landing.java
│ │ └── steps ## Pages are used in steps
│ │ └── GoogleSteps.java
│ └── resources
│ └── stories
│ └── google
│ ├── Search2.story
│ └── search.story
Refrences
- [jbehave]: http://jbehave.org/
- [gradle]: http://gradle.org/
- [serenity]: http://thucydides.info/docs/serenity/#first-steps