Here are some rules that we follow when developing JBehave:
- Example Driven: Only create code to solve a realistic (and preferably real) problem.
- Behaviour Driven: Only create classes once you can describe and automate examples of their behaviour.
- No Misbehaving: Automated examples must work before being checked into the repository, and existing tests must not be broken.
They have a new release, by the way. With "plain text" scenarios. Check it out.