簡體   English   中英

重新創建一堆組件以進行彈性單元測試(flexunit)

[英]Recreating a bunch of components for flex unit testing (flexunit)

我有一堆NumericSteppers(開始周,開始年,結束周,結束年),它們深入ViewStacks,NavigatorContents等內部。我想對日期步進器進行單元測試,想知道如何才能做到這一點? 當我初始化頂級父組件時,不會創建子組件。 我是否必須通過遍歷樹來手動添加所有這些組件(請說不:))? 我可以使用UIImpersonator嗎?

抱歉,如果問題很簡單,Flex對我來說是一個新手。

在Flash中,為GUI組件創建單元測試是有問題的。 我通常為控制器,表示模型,介體(等)編寫單元測試-即:包含業務邏輯的非GUI類。

為GUI對象編寫測試成為失敗的主張,原因有很多:

  • 視圖的邏輯往往需要通過用戶交互來觸發
  • 該視圖可能取決於難以在測試中模擬/模擬的低級Flash API(NetStream,Camera等)
  • 自動運行測試(即:由持續集成或構建系統啟動)時,無法運行具有GUI元素(使用該階段或添加到該階段的事物)的測試
  • 測試往往運行較慢

我通常避免為諸如日期步進器之類的組件編寫單元測試,我們將它們組合在一起以形成更大的“視圖”。 我通常使用表示模型 ,如果組件具有應測試的特定業務邏輯,則將針對非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();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM