add gs
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
local function createSpy(inner)
|
||||
local self = {
|
||||
callCount = 0,
|
||||
values = {},
|
||||
valuesLength = 0,
|
||||
}
|
||||
|
||||
self.value = function(...)
|
||||
self.callCount = self.callCount + 1
|
||||
self.values = {...}
|
||||
self.valuesLength = select("#", ...)
|
||||
|
||||
if inner ~= nil then
|
||||
return inner(...)
|
||||
end
|
||||
end
|
||||
|
||||
self.assertCalledWith = function(_, ...)
|
||||
local len = select("#", ...)
|
||||
|
||||
assert(self.valuesLength, len, "length of expected values differs from stored values")
|
||||
|
||||
for i = 1, len do
|
||||
local expected = select(i, ...)
|
||||
assert(self.values[i], expected, "value differs")
|
||||
end
|
||||
end
|
||||
|
||||
setmetatable(self, {
|
||||
__index = function(_, key)
|
||||
error(("%q is not a valid member of spy"):format(key))
|
||||
end,
|
||||
})
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
return createSpy
|
||||
Reference in New Issue
Block a user