测试用例中的UIComponent为null

时间:2012-12-13 14:21:11

标签: flex flexunit

我有这个App.mxml:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx">
    <s:Button id="bt" label="click me"/>
</s:Application>

这个测试用例:

package flexUnitTests
{
    import flexunit.framework.Assert;

    public class AppTest
    {       
        [Test]
        public function testApp():void
        {
            var app:App = new App();
            Assert.assertNotNull(app.bt);
        }
    }
}   

app.bt为空。我想访问按钮:(

1 个答案:

答案 0 :(得分:1)

简答:

生命周期方法尚未在app上运行;所以没有执行createChildren()方法来创建bt的子组件。

更长的答案:

主应用程序文件的情况稍微复杂一些,因为显示层次结构中没有更高级别的Flex组件。我不清楚所有细节,但是......

我认为Flex Compiler在设置这个组件和Flex框架方面做了一些魔术,它有助于整个应用程序的运行。实际上,您通过创建自己的组件实例来绕过该工作。