Keep your Gherkin feature files consistent in layout, take the pain out of table formatting and cucumber step generationAllows users to:
> Get started on a feature file quickly with a template.
> Create feature files with a consistent layout.
> Preview and quickly apply formatting changes to scenarios.
> See tips on correct syntax and see syntax highlighting as they type.
> Easily create scenario outline tables with automatic column formatting.
> Save/Open/Create feature files directly from Tidy Gherkin.
> Generate Cucumber for Java/Ruby/Javascript step definitions from your Gherkin feature file
-----------------------------
New in this version:
+ New feature: New feature: Support for auto-generation of Javascript step definitions.
Feedback appreciated as always.
-----------------------------
Just start typing your gherkin or paste in what you have already. As you type you can preview the tidied output below and either click 'Tidy' or hit Ctrl+Enter to tidy what you have so far.
Don't spend time trying to align all the pipes in your Scenario Outline table - just generate a table using the tool, roughly populate it with values and hit 'Tidy' to get that perfect alignment. If adding another row, just click the 'Insert Row After' button.
If you would like to generate some cucumber for Java step definitions, hit the 'JAVA STEPS' tab, or, for Ruby step definitions, hit the 'RUBY STEPS' tab.
As an example, the following Gherkin:
Given I have a new <customerType> customer
Would generate the Java:
@Given("^I have a new (.+) customer$")
public void i_have_a_new_customer(String customertype) throws Throwable {
throw new PendingException();
}
And the following Ruby:
Given /^I have a new (.+) customer$/ do |customertype|
# do something
end
The generator will look for:
Parameters (for use with Example tables) such as <customerType>
Strings such as "customerA"
Lists of strings such as "customer1,customer2"
In each case the appropriate regular expression and annotation will be constructed for the generated Java method.
Further examples:
When customer "customerA" logs in
Generates:
@When("^customer \"([^\"]*)\" logs in$")
public void customer_something_logs_in(String strArg1) throws Throwable {
throw new PendingException();
}
Or for Ruby:
When /^customer \"([^\"]*)\" logs in$/ do |customera|
# do something
end
And:
Then the customer sees "transaction1,transaction2" in their history
Generates:
@Then("^the customer sees \"([^\"]*)\" in their history$")
public void the_customer_sees_something_in_their_history(List<String> list1) throws Throwable {
throw new PendingException();
}
Or for Ruby:
Then /^the customer sees \"([^\"]*)\" in their history$/ do |transaction1transaction2|
# do something
end