Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 05:35, 26 February 2025 by Prd (talk | contribs) (Created page with "--- @classmod Mock --- Combination of Spy and ProgrammableFn. -- See @{Spy} and @{ProgrammableFn} for details. local ProgrammableFn = require 'Module:Lua-mock/ProgrammableFn' local Spy = require 'Module:Lua-mock/Spy' local Mock = {} Mock.__index = Mock function Mock:whenCalled( behaviour ) self.programmable:whenCalled(behaviour) return self end function Mock:__call( ... ) return self.spy(...) end function Mock:reset() self.spy:reset() self.pro...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


This is the lua-mock library, used to create mock objects for use in unit testing.

See the lua-mock documentation page for documentation.


--- @classmod Mock
--- Combination of Spy and ProgrammableFn.
-- See @{Spy} and @{ProgrammableFn} for details.


local ProgrammableFn = require 'Module:Lua-mock/ProgrammableFn'
local Spy = require 'Module:Lua-mock/Spy'


local Mock = {}
Mock.__index = Mock


function Mock:whenCalled( behaviour )
    self.programmable:whenCalled(behaviour)
    return self
end

function Mock:__call( ... )
    return self.spy(...)
end

function Mock:reset()
    self.spy:reset()
    self.programmable:reset()
    return self
end

function Mock:assertCallCount( count )
    self.spy:assertCallCount(count)
    return self
end

function Mock:assertCallMatches( query )
    self.spy:assertCallMatches(query)
    return self
end

function Mock:assertAnyCallMatches( query )
    self.spy:assertAnyCallMatches(query)
    return self
end


return function()
    local programmable = ProgrammableFn()
    local spy = Spy(programmable)
    local self = {
        programmable = programmable,
        spy = spy
    }
    return setmetatable(self, Mock)
end