Nutritious Pumpkin Meal

    tap-given
    TypeScript icon, indicating that this package has built-in type declarations

    0.6.0 • Public • Published

    tap-given

    Build Status Coverage Status npm

    This module provides tap API with Mocha-like DLS as Given-When-Then style for BDD tests.

    Requirements

    This module requires Node >= 4.

    Installation

    npm install tap-given

    Usage

    Feature: TDD in Given-When-Then style

    Scenario: Basic scenario

    Given examples/test.js file:

    const t = require('tap')
    require('tap-given')(t)
    require('chai').should()
     
    Feature('TDD in Given-When-Then style for TAP', () => {
      Scenario('Basic scenario', () => {
        let a, b, c
     
        Given('first value', () => {
          a = 2
        })
     
        And('second value', () => {
          b = 21
        })
     
        When('I do multiplication operation', () => {
          c = a * b
        })
     
        Then('the result is correct', () => {
          c.should.equal(42)
        })
      })
    })

    When I run tap command:

    $ tap -R spec examples/test.js

    Then following output is produced:

    examples/test.js
      Feature: TDD in Given-When-Then style for TAP
        Scenario: Basic scenario
          ✓ Given first value
          ✓   ‎‎And second value
          ✓  ‎When I do multiplication operation
          ✓  ‎Then the result is correct
    
    
      4 passing (233.031ms)
    

    Functions

    Feature function is an alias to describe function and might be optional.

    Scenario function is an alias to context function. It usually provides a context for its steps then real function () {} might be used instead arrow () => {} notation.

    Given, When, Then and And functions are aliases to it function.

    Before, beforeEach, After and afterEach functions are also provided and are optional.

    For Before and After functions the first argument is optional.

    All functions except BeforeEach and AfterEach add some prefix to the description of the step.

    Typescript

    Use following syntax instead require:

    import * as tap from 'tap'
    import { tapGiven } from 'tap-given'
    tapGiven(tap)

    Linter

    Install eslint-plugin-tap-given module and use in package.json:

    {
      "standard": {
        "plugins": [ "tap-given" ],
        "env": [ "tap-given/tap-given" ]
      }
    }

    or:

    {
      "eslintConfig": {
        "plugins": [ "tap-given" ],
        "env": {
          "tap-given/tap-given": true
        }
      }
    }

    Without plugin:

    {
      "standard": {
        "globals": [
          "After",
          "AfterEach",
          "And",
          "Before",
          "BeforeEach",
          "Feature",
          "Given",
          "Scenario",
          "Then",
          "When"
        ]
      }
    }

    or:

    /* global Feature, Scenario, Given, When, Then, And, Before, BeforeEach, After, AfterEach */

    License

    Copyright (c) 2017 Piotr Roszatycki piotr.roszatycki@gmail.com

    MIT

    Install

    npm i tap-given

    DownloadsWeekly Downloads

    6

    Version

    0.6.0

    License

    MIT

    Last publish

    Collaborators

    • dex4er