package; import massive.munit.util.Timer; import massive.munit.Assert; import massive.munit.async.AsyncFactory; import funkin.util.DateUtil; class MockTest extends FunkinTest { public function new() { super(); } @BeforeClass public function beforeClass() {} @AfterClass public function afterClass() {} @Before public function setup() {} @After public function tearDown() {} @Test public function testMock() { // Test that mocking works. var mockSprite = mockatoo.Mockatoo.mock(flixel.FlxSprite); var mockAnim = mockatoo.Mockatoo.mock(flixel.animation.FlxAnimationController); mockSprite.animation = mockAnim; var animData:funkin.data.animation.AnimationData = { name: "testAnim", prefix: "blablabla" }; mockSprite.animation.addByPrefix("testAnim", "blablabla", 24, false, false, false); // Verify that the method was called once. // If not, a VerificationException will be thrown and the test will fail. mockatoo.Mockatoo.verify(mockAnim.addByPrefix("testAnim", "blablabla", 24, false, false, false), times(1)); try { // Attempt to verify the method was called. // This should FAIL, since we didn't call the method. mockatoo.Mockatoo.verify(mockAnim.addByIndices("testAnim", "blablabla", [], "", 24, false, false, false), times(1)); Assert.fail("Mocking function should have thrown but didn't."); } catch (_:mockatoo.exception.VerificationException) { // Expected. } } }