diff bindings/as3/ext/asunit/framework/TestCaseExample.as @ 732:3a0b9700b3d2

* Initial AS3 commit
author mas01mj
date Tue, 14 Sep 2010 16:47:10 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bindings/as3/ext/asunit/framework/TestCaseExample.as	Tue Sep 14 16:47:10 2010 +0000
@@ -0,0 +1,73 @@
+package asunit.framework {
+    import asunit.framework.TestCase;
+    import flash.display.Sprite;
+    import flash.events.Event;
+    import flash.events.IEventDispatcher;
+    import flash.events.EventDispatcher;
+    import flash.utils.setTimeout;
+
+    // TestCase subclasses should always end with 'Test', the example
+    // doesn't because we don't want TestSuites in this directory.
+    public class TestCaseExample extends TestCase {
+        private var date:Date;
+        private var sprite:Sprite;
+
+        // TestCase constructors must be implemented as follows
+        // so that we can execute a single method on them from
+        // the TestRunner
+        public function TestCaseExample(testMethod:String = null) {
+            super(testMethod);
+        }
+
+        // This method will be called before every test method
+        override protected function setUp():void {
+            date = new Date();
+//            sprite = new Sprite();
+//            addChild(sprite);
+        }
+
+        // This method will be called after every test method
+        // but only if we're executing the entire TestCase,
+        // the tearDown method won't be called if we're
+        // calling start(MyTestCase, "someMethod");
+        override protected function tearDown():void {
+//            removeChild(sprite);
+//            sprite = null;
+            date = null;
+        }
+
+        // This is auto-created by the XULUI and ensures that
+        // our objects are actually created as we expect.
+        public function testInstantiated():void {
+            assertTrue("Date instantiated", date is Date);
+//            assertTrue("Sprite instantiated", sprite is Sprite);
+        }
+
+        // This is an example of a typical test method
+        public function testMonthGetterSetter():void {
+            date.month = 1;
+            assertEquals(1, date.month);
+        }
+
+        // This is an asynchronous test method
+        public function testAsyncFeature():void {
+            // create a new object that dispatches events...
+            var dispatcher:IEventDispatcher = new EventDispatcher();
+            // get a TestCase async event handler reference
+            // the 2nd arg is an optional timeout in ms. (default=1000ms )
+            var handler:Function = addAsync(changeHandler, 2000);
+            // subscribe to your event dispatcher using the returned handler
+            dispatcher.addEventListener(Event.CHANGE, handler);
+            // cause the event to be dispatched.
+            // either immediately:
+            //dispatcher.dispatchEvent(new Event(Event.CHANGE));
+            // or in the future < your assigned timeout
+            setTimeout( dispatcher.dispatchEvent, 200, new Event(Event.CHANGE));
+        }
+
+        protected function changeHandler(event:Event):void {
+            // perform assertions in your handler
+            assertEquals(Event.CHANGE, event.type);
+        }
+    }
+}