Documentation for this module may be created at Module:Middleclass/testcases/doc
-- Tests for [[Module:Middleclass]]. Click talk page to run tests.
local middleclass = require('Module:Middleclass') -- the module to be tested
local ScribuntoUnit = require('Module:ScribuntoUnit')
local suite = ScribuntoUnit:new()
local TestClass0 = middleclass('TestClass0')
function TestClass0:testMe()
return 1234
end
function suite:testSimple()
self:assertEquals(TestClass0:new():testMe(), 1234)
end
function suite:testImplicitNew()
self:assertEquals(TestClass0():testMe(), 1234)
end
local TestClass1 = middleclass('TestClass1', TestClass0)
function TestClass1:initialize()
self.val0 = 6
self.val1 = {}
self.val2 = 8
end
function TestClass1:testMe0()
return self.val0
end
function TestClass1:testMe1()
return self.val1
end
function TestClass1:testMe2()
return self.val2
end
function suite:testNumericValues()
local obj = TestClass1:new()
self:assertEquals(obj:testMe0(), 6)
self:assertEquals(obj:testMe2(), 8)
end
function suite:testInheritance()
-- Test invoking the inherited TestClass0:testMe() method from an instance of TestClass1
self:assertEquals(TestClass1:new():testMe(), 1234)
end
function TestClass1:mySuper()
return TestClass1.super
end
function suite:testSuper()
self:assertEquals(TestClass1:new():mySuper(), TestClass0)
end
function suite:testTableValue()
self:assertDeepEquals(TestClass1:new():testMe1(), {})
end
return suite
