Creating Step Definition
After enabling Cucumber support, RubyMine creates common steps definitions in the webrat_steps.rb file; on generating a new feature, a dedicated step definition file is also created. However, if a .feature file refers to a non-existent step, RubyMine's code inspection recognizes and highlights such step, and provides an intention action that helps create missing step definition.
Creating step definition
To create a missing step definition
While editing the .feature file, type a reference to a step definition. RubyMine highlights step as undefined, and gives detailed information at the tooltip:
Press Alt+Enter to show the Create Step Definition intention action:
- Select the target step definition file from the list:
You can either select one of the existing step definition files from the suggestion list, or create a new one.
RubyMine creates a step definition stub in the specified location.
- In the selected step definition file that opens in the editor, enter the desired code.
Note that the editor turns into the template editing mode and displays the first input field highlighted with the red frame.
Type step definition in this frame and press Enter or Tab to complete input and pass to the next input field, where you have to enter your source code. After completing input, the caret moves to the end of the suggested step definition, and the editor returns to the regular mode of operation.
Tips and tricks
While typing, use code completion Ctrl+Space after keywords. Note that you can narrow down the suggestion list by typing characters contained anywhere within a description. On top of the suggestion list there will be the variants that contain specified characters as prefixes, followed by the variants with the arbitrary occurrences of characters:
You can find usages of a step definition. To do that, place the caret at the desired definition, and press Alt+F7. Refer to the section Search for usages in a project for details.
RubyMine keeps an eye on the uniqueness of the step definitions. Step definitions with the same names are highlighted.