GivWenZen allows a user to use the BDD Given When Then vocabulary and plain text sentences to help a team get the words right and create a ubiquitous language to describe and test a business domain.
#The Idea
The idea was taken from Cucumber and my desire to create Cucumber like specifications and tests in FitNesse. Like Cucumber, GivWenZen does not distinguish between Given When Then or and but you should. Regular expression parsing is used to determine what step method should be executed for each given when then step in a test. Regular expression parsing is also used to find parameters to the step method. Also see how other ideas from Cucumber map to FitNesse.
#Example
1) Start with an example fixture actual class found in the givwenzen_test.jar.
2) In a FitNesse table it could look like this.
import and start should go in SetUp or SuiteSetUp
|import|
|org.givwenzen|
|script|
|start|giv wen zen for slim|
|script|
| given| a ToDo item is due tomorrow |
| when | the date changes to tomorrow |
| then | a notification exists indicating the ToDo is due |
package bdd.steps;
@DomainSteps
public class ExampleSteps {
@DomainStep( “a ToDo item is due (.*)” )
public void createToDoWithDueDateOf(CustomDate date) {
// do something
}
@DomainStep( “the date changes to (.*)” )
public void theDateIs(CustomDate date) {
// do something
}
@DomainStep( “a notification exists indicating the ToDo is due” )
public boolean verifyNotificationExistsForDueToDo() {
// do something
return false;
}
}
#More Examples More example can be found in the FitNesseRoot in source. It is easy to get started.
Simple scenarios More complex scenarios
##Groups
http://groups.google.com/group/givwenzen_user
http://groups.google.com/group/givwenzen_developer
#Running
java -jar ./lib/fitnesse.jar -p 8080
Open http://localhost:8080/ in the browser of your choice.
Here you will find an example test and a user guide for GivWenZen.
##License
License: MIT.
Libraries required for main classes:
commons-logging-1.2.jar - Apache License 2.0.
guava-27.1-jre.jar - Apache License 2.0.
javassist.jar - Apache License 2.0., LGPL 2.1, Mozilla Public License 1.1.
log4j-1.2.17.jar - Apache License 2.0.