Capuchin - Unit Test Framework
Monkey Forums/User Modules/Capuchin - Unit Test Framework
| ||
| Hi everyone, I want to share with you this framework I've been working on for testing my code. Currently is very basic and handles only boolean and numeric values, but I plan on adding more stuff to it. I've already used it on my SAT module to test that it works correctly. You can check the repo here: https://github.com/ilovepixel/capuchin And here you can see a small example of it: running
Import capuchin
Import mojo
Class NumberTest Extends Test Implements iSpec
Method New()
Super.New()
It("0 Should be equal to value", Self)
It("10 should be lower than value", Self)
It("99 should be grater or equal to value", Self)
It("25.6 should be lower or equal to to value", Self)
End
Method Execute:Void (testNum:Int, spec:Spec)
Select (testNum)
Case 0
spec.Expect(0).ToEqual(0)
'spec.Done()' <--- forcing a timeout
Case 1
spec.Expect(10).BeLowerThan(100)
spec.Done()
Case 2
spec.Expect(99).BeGreaterOrEqualTo(99)
spec.Done()
Case 3
spec.Expect(25.6).BeLowerOrEqualTo(25)
spec.Done()
End
End
End
Class BoolTest Extends Test Implements iSpec
Method New()
Super.New()
It("True should be equal to value", Self)
It("False should be equal to value", Self)
It("True should not be equal to value", Self)
It("False should not be equal to value", Self)
End
Method Execute:Void (testNum:Int, spec:Spec)
Select (testNum)
Case 0
spec.Expect(True).ToEqual(True)
spec.Done()
Case 1
spec.Expect(False).ToEqual(True) '<-- Forcing a fail
spec.Done()
Case 2
spec.Expect(True).NotEqual(False)
spec.Done()
Case 3
spec.Expect(False).NotEqual(True)
spec.Done()
End
End
End
Class GameTest Extends App
Field testEnv:TestEnviroment
Method OnCreate:Int ()
testEnv = New TestEnviroment()
testEnv.Describe("Checking numbers", New NumberTest())
testEnv.Describe("Checking booleans", New BoolTest())
testEnv.Start()
SetUpdateRate(60)
Return 0
End
Method OnUpdate:Int ()
testEnv.Update()
Return 0
End
Method OnRender:Int ()
Cls()
testEnv.Draw()
Return 0
End
End
Function Main:Int ()
New GameTest()
Return 0
End
To check the framework being used on a real monkey module you can check here: http://dev.shin.cl/sat-monkey/tests/ Cheers, Felipe |