我有一堆NumericSteppers(开始一周,开始一年,结束一周,结束一年),它们深入ViewStacks,NavigatorContents等。我想对我的日期步进器进行单元测试,并想知道我该如何做那?当我初始化顶级父组件时,子组件不会被创建。我是否必须通过迭代树来手动添加所有这些组件(请说不:))?我可以使用UIImpersonator吗?
很抱歉,如果问题是基本的,那么Flex对我来说是一个新手。
答案 0 :(得分:1)
在Flash中,为GUI组件创建单元测试是有问题的。我通常为控制器,表示模型,调解器(等)编写单元测试 - 即:包含业务逻辑的非GUI类。
为GUI对象编写测试成为一个失败的主张,原因有很多:
我通常避免为像日期步进器这样的组件编写单元测试,我们将它们组合在一起形成更大的“视图”。我通常使用presentation model,如果组件具有应该测试的特定业务逻辑,则测试是针对非gui表示模型类(或控制器,或介体,或其他)编写的。
public class MyViewPM
{
// write a unit test for this method
public function onSubmitButtonClick():void
{
}
}
public class MyView extends Sprite
{
// this is injected by your MVC framework
// or set when the the view is created, or added to stage, etc.
public var pm:MyViewPM;
public function MyView()
{
submitButton.addEventListener(MouseEvent.Click, onMouseClick);
}
private function onMouseClick(event:Event):void
{
pm.onSubmitButtonClick();
}
}