Flexunit من حدث العميل و async.asynchandler ()
-
28-09-2019 - |
سؤال
أي شخص يعرف كيف يفعل Async.asyncHandler()
العمل وإذا Async.processOnEvent()
لا يمكن استخدامها إلا في [قبل] الطريقة. (أي شخص يعرف بعض المستندات المفيدة إلى جانب http://docs.flexunit.org/).
أقوم بتحديد مكون MXML يدعى Hellocompo (يمتد Vbox) ، ويحدد المكون وظيفة تسمى Hello () ، في Hello () من حدث عميل يدعى Helloevent (نوع الحدث المسمى "Hello") ، وفي وظيفة أخرى مسماة init () استمعت للحدث ، أريد اختبار ما إذا كان الحدث قد تم إرساله بشكل صحيح أم لا. لذلك لدي الاختبار التالي:
var hellocompo = new Hellocompo () ؛
helloCompo.hello();
helloCompo.addEventListener("hello", Async.asyncHandler(this, handleHello, 1000, null, handleTimeOut));
سيؤدي الاختبار دائمًا إلى إثارة طريقة handletimeout (تعني عدم إرسال helloevent ، ولكن عندما يكون Hellocompo.hello () excute ، فهي تتجاهل حقًا ، فما الخطأ الذي يحدث؟)
المحلول
package flexUnitTests
{
import flash.events.Event;
import org.flexunit.asserts.assertTrue;
import org.flexunit.asserts.fail;
import org.flexunit.async.Async;
public class HelloTest
{
private var helloCompo:HelloCompo;
[Before]
public function setUp():void
{
helloCompo = new HelloCompo();
}
[After]
public function tearDown():void
{
helloCompo = null;
}
[Test(async)]
public function testHello():void
{
var handler:Function = Async.asyncHandler(this, helloHandler, 300, null, helloFailed);
helloCompo.addEventListener("hello", handler);
helloCompo.hello();
}
private function helloHandler(event:Event, passThroughObject:Object):void
{
//assert somthing
}
private function helloFailed(event:Event, passThroughObject:Object):void
{
fail("hello not dispatched");
}
}
}
Hellocompo.as
package
{
import flash.events.Event;
import flash.events.EventDispatcher;
import flash.events.IEventDispatcher;
public class HelloCompo extends EventDispatcher
{
public function HelloCompo(target:IEventDispatcher=null)
{
super(target);
}
public function hello():void
{
dispatchEvent(new Event("hello"));
}
}
}
نصائح أخرى
أعتقد أنك بحاجة إلى إضافة مستمع الحدث الخاص بك قبل الاتصال Hello () في الواقع