Skip to content

Latest commit

 

History

History
77 lines (59 loc) · 1.73 KB

nodejs_example.md

File metadata and controls

77 lines (59 loc) · 1.73 KB

Setup

  • Install Node.js (12 or higher)

  • Install Cucumber modules with yarn or npm

    yarn add -D @cucumber/cucumber
    
    npm i -D @cucumber/cucumber
    
  • Add the following files

    # features/simple_math.feature
    Feature: Simple maths
      In order to do maths
      As a developer
      I want to increment variables
    
      Scenario: easy maths
        Given a variable set to 1
        When I increment the variable by 1
        Then the variable should contain 2
    
      Scenario Outline: much more complex stuff
        Given a variable set to <var>
        When I increment the variable by <increment>
        Then the variable should contain <result>
    
        Examples:
          | var | increment | result |
          | 100 |         5 |    105 |
          |  99 |      1234 |   1333 |
          |  12 |         5 |     17 |
    // features/support/world.js
    const { setWorldConstructor } = require("@cucumber/cucumber");
    
    class CustomWorld {
      constructor() {
        this.variable = 0;
      }
    
      setTo(number) {
        this.variable = number;
      }
    
      incrementBy(number) {
        this.variable += number;
      }
    }
    
    setWorldConstructor(CustomWorld);
    // features/support/steps.js
    const { Given, When, Then } = require("@cucumber/cucumber");
    const assert = require("assert").strict;
    
    Given("a variable set to {int}", function (number) {
      this.setTo(number);
    });
    
    When("I increment the variable by {int}", function (number) {
      this.incrementBy(number);
    });
    
    Then("the variable should contain {int}", function (number) {
      assert.equal(this.variable, number);
    });
  • Run ./node_modules/.bin/cucumber-js