I have shown you five different ways to implement something on top of a common model using the same behaviour. I hope you can agree that it is obvious that BDD and Cucumber-JVM is not just meant for testing GUIs. It can be used to assert any behaviour.
Remember that you never shall specify implementation details and always define the behaviour in declarative manner. You are interested in the behaviour of the system and less interested in the implementation. The implementation may change, but the expected behaviour may not change with it. Unless you implement new functionality of course or change the desired behaviour of the system.
Resources- Dan North - Introducing BDD
- Matt Wynne - on BDD As It's Meant To Be Done
- Ben Mabey - Imperative vs. Declarative Scenarios in User Stories
- JUnit - A unit test tool
- BDD is more than "TDD done right"
- Cucumber - The official site
- JSF - A framework for building web applications
- Wicket - A framework for building web applications
- Selenium WebDriver - A Browser automation tool
- FEST - Fixtures for Easy Software Testing
- Jersey - The JSR 311 Reference Implementation for building RESTful Web services
- RESTAssured - A test framework for RESTful Web services
- Apache CXF - An open source web service framework
- Cucumber articles - My Cucumber related blog posts
- Thomas Sundberg - The author