您可以使用計時器行為在 Stub 中設定計時器事件。在經過設定的時段後,就會觸發計時器事件,而 Stub 會收到事件,然後做出回應。例如,您可能使用 Stub 來管理使用者階段作業,而且想要新增計時器行為,以自動將閒置超過 30 秒的使用者登出。
開始之前
您必須有 Stub,才能將計時器行為新增至 Stub。如需 Stub 及其用途的相關資訊,請參閱 Stub:概觀和作業。
關於這項作業
您想要將計時器事件排定在經過 30 秒後觸發。
如果要將計時器行為新增至 Stub,請執行下列動作:
程序
- 在 Rational®
Integration Tester 的「測試 Factory」視景中,按兩下要將計時器行為新增至的 Stub。
這時會開啟「Stub 編輯器」。
接下來,您可以新增 Stub 行為。請從「行為」頁面執行此作業。
- 按一下行為標籤,然後按一下新增,以開啟「新增行為實體」對話框。
您可以看到 Rational
Integration Tester 隨附的行為類型。您還可以看到「生命週期」行為的說明。
提示: 如果要看見「計時器」行為的說明,請從清單中選取該行為。如需行為類型的相關資訊,請參閱
「行為」標籤。
現在,您需要「生命週期」行為實例,以便將計時器事件排定在 30 秒後觸發。您還需要「計時器」行為實例,以定義要在計時器事件執行時傳送的訊息。
- 設定 Stub 的行為類型:
- 選取生命週期,將生命週期實例命名,或接受實例欄位中提供的預設名稱,然後按一下新增。
這時會開啟行為標籤,其中包含生命週期行為的名稱和說明,以及配置設定。
- 按一下新增以回到「新增行為實體」對話框,然後選取計時器。
將計時器實例命名,或接受實例欄位中提供的預設名稱,然後按一下新增。
這時會開啟行為標籤,其中包含計時器行為的名稱和說明。計時器行為沒有任何配置設定。
接下來,為您剛新增的行為類型設定事件。請從「事件」頁面執行此作業。
- 按一下事件標籤。
- 如果要新增事件,請按一下「新增事件」() 圖示。按兩下「事件」方框,從清單中選取 lifecycle,然後選取 onStart。
選取 onStart 是因為您希望 Stub 在啟動時觸發動作。稍後會定義該動作。接下來,您需要新增另一個事件,並將該事件用於「計時器」行為,讓 Stub 在事件發生時傳送訊息。
- 按一下「新增事件」() 圖示。按兩下「事件」方框,從清單中選取 timer,然後選取 onTimerEvent。
onTimerEvent 是在計時器到期時提供事件給 Stub 的回呼。
- 如果要啟動計時器,您必須在 lifecycle.onStart 事件中新增程式碼。
- 移至此事件的活動標籤,然後在「活動」窗格中按一下滑鼠右鍵,並選取,以新增函數動作。
- 按兩下函數動作來編輯它。確保已選取函數標籤,而且 Script 語言欄位設定為 ECMAScript。
- 輸入下列程式碼以起始設定計時器:
timer.scheduleTimerEvent("id","param", 30, java.util.concurrent.TimeUnit.SECONDS)
在此範例中,第一個參數是您提供給計時器的 ID,以便稍後可以取消或重設計時器(如果需要的話)。第二個參數是在計時器到期時傳回給 Stub 的物件。第三個和第四個參數指定計時器的執行時間長短;在本例中,計時器會執行 30 秒。
提示: 有關可用於排定單一計時器事件、排定重複計時器事件或取消計時器事件的每個「計時器」函數行為的說明,請參閱
「行為」標籤。
- 按一下確定以關閉函數動作。
- 如果要新增在計時器觸發時要執行的動作,您可以將商業邏輯或傳送訊息新增至 timer.onTimerEvent 事件。
- 移至此事件的活動標籤,然後在「活動」窗格中按一下滑鼠右鍵,並選取,以新增日誌動作。
- 鍵入輸出訊息,然後按一下確定,以關閉日誌動作。
- 移至「測試實驗室」視景並執行 Stub。
在「測試實驗室」中,您可以看到 30 秒之後觸發 timer 事件,而且每次都傳送輸出訊息 Callback
triggered!!!。
提示: 只有在觸發特定的計時器時,才能使用過濾來處理 Stub。
在此範例中,只有名為 myTimer 的計時器才會觸發計時器事件。
您也可以標記參數物件,然後在進一步動作中重複使用。