Toggle menu
14
229
69
27.1K
Kenshi Wiki
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