Module:Template test case: Difference between revisions

    (first draft of the spec for a generalised template test cases module)
     
    (tentative TestCase class syntax)
    Line 1: Line 1:
    -- This module provides several methods to generate test cases.
    -- This module provides several methods to generate test cases.
    local libraryUtil = require('libraryUtil')
    local checkTypeForNamedArg = libraryUtil.checkTypeForNamedArg


    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------
    Line 22: Line 25:
    --    * heading - a heading to display above the template output.
    --    * heading - a heading to display above the template output.
    --------------------------------------------------------------------------------
    --------------------------------------------------------------------------------
    -------------------------------------------------------------------------------
    -- TestCase class
    -------------------------------------------------------------------------------
    local TestCase = {}
    TestCase.__index = TestCase
    function TestCase.new(t)
    -- Validate the input
    checkTypeForNamedArg('TestCase.new', 'invocation', t.invocation, 'table')
    checkTypeForNamedArg('TestCase.new', 'templates', t.templates, 'table')
    checkTypeForNamedArg('TestCase.new', 'options', t.options, 'table', true)
    t.options = t.options or {}
    local obj = setmetatable({}, TestCase)
    return obj
    end