0.0.1 • Published 2 years ago

cover-every v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

cover-every

A simple tool for generating test cases in JSON format. It makes easier for you to perepare decision tables for software testing. You don't have to input data to every cell manually any more.

  • It can be used for any level of testing, like Unit Test, Combination Test, System Test, Browser Test etc.
  • It handles multibyte string, so it provides high readability even if outside English-speaking countries.

Installation

npm install cover-every --save-dev

Usage

const example_domain = {
    "Given":{
        "Student":{
            "Course":[
                "Bachelor",
                "Master",
                "Doctor",
            ],
            "Grade":[
                "1",
                "2",
                "3",
                "4",
            ]
        }
    },
    "When":[
        "Try to login",
    ],
    "Then":[
        "Pass",
        "Fail",
        "Any",
    ],
} as const;

const default_tree = {
    "Given":{
        "Student":{
            "Course":"Bachelor",
            "Grade":"1",
        }
    },
    "When":"Try to login",
    "Then": "Any",
} as const;

const exclusions = [
    {
        "Given.Student.Course" : "Master",
        "Given.Student.Grade" : "3",
    },
    {
        "Given.Student.Course" : "Master",
        "Given.Student.Grade" : "4",
    },
    {
        "Given.Student.Course" : "Doctor",
        "Given.Student.Grade" : "4",
    },
] as const;

const perspectives = [
    {
        "title": "Only Bachelors can login.",
        "constants": {
        },
        "variables": [
            "Given.Student.Course",
            "Given.Student.Grade",
        ],
        "setThen": (test)=>{
            if(test["Given.Student.Course"] === "Bachelor"){
                test["Then"] = "Pass";
            }else{
                test["Then"] = "Fail";
            }
            return test
        }
    }
] as const;

const tests = generateTests(
    example_domain,
    default_tree,
    exclusions,
    perspectives,
)

console.log(tests)
/*
[ 
    {
        'Given.Student.Course': 'Bachelor',
        'Given.Student.Grade': '1',
        When: 'Try to login',
        Then: 'Pass',
        Perspective: 'Only Bachelors can login.',
        ID: '1' 
    },
    {
        'Given.Student.Course': 'Bachelor',
        'Given.Student.Grade': '2',
        When: 'Try to login',
        Then: 'Pass',
        Perspective: 'Only Bachelors can login.',
        ID: '2'     
    },
    {
        'Given.Student.Course': 'Bachelor',
        'Given.Student.Grade': '3',
        When: 'Try to login',
        Then: 'Pass',
        Perspective: 'Only Bachelors can login.',
        ID: '3' 
    },
    {
        'Given.Student.Course': 'Bachelor',
        'Given.Student.Grade': '4',
        When: 'Try to login',
        Then: 'Pass',
        Perspective: 'Only Bachelors can login.',
        ID: '4' 
    },
    {
        'Given.Student.Course': 'Master',
        'Given.Student.Grade': '1',
        When: 'Try to login',
        Then: 'Fail',
        Perspective: 'Only Bachelors can login.',
        ID: '5' 
    },
    {
        'Given.Student.Course': 'Master',
        'Given.Student.Grade': '2',
        When: 'Try to login',
        Then: 'Fail',
        Perspective: 'Only Bachelors can login.',
        ID: '6' 
    },
    {
        'Given.Student.Course': 'Doctor',
        'Given.Student.Grade': '1',
        When: 'Try to login',
        Then: 'Fail',
        Perspective: 'Only Bachelors can login.',
        ID: '7' 
    },
    {
        'Given.Student.Course': 'Doctor',
        'Given.Student.Grade': '2',
        When: 'Try to login',
        Then: 'Fail',
        Perspective: 'Only Bachelors can login.',
        ID: '8' 
    },
    {
        'Given.Student.Course': 'Doctor',
        'Given.Student.Grade': '3',
        When: 'Try to login',
        Then: 'Fail',
        Perspective: 'Only Bachelors can login.',
        ID: '9'
    }
]
*/