testing 套件

單元

about
dialog_test_client
dialog_test_logger
storage_base_tests

所有儲存提供者都應該在自己的測試中實作的基本測試。 它們會在內部處理以記憶體為基礎的判斷提示。

如果判斷提示通過,表示程式碼執行到完成,則所有測試都會傳回 true,並傳遞內部判斷提示。 因此,所有使用這些靜態測試的測試都應該嚴格檢查方法是否傳回 true。

注意:Python 不能有具有 None 值之屬性的聽寫,就像其他 SDK 可以有具有 Null 值的屬性。 因此,StoreItem 測試具有「e_tag:*」,其中其他 SDK 中的測試不會。 這也導致我們批注出這些測試的某些部分,我們斷言“e_tag”是 None,原因相同。 Null e_tag應該像寫入時* e_tag一樣運作,就儲存適配卡而言,這不應該造成問題。

:範例: async def test_handle_null_keys_when_reading(self): await reset()

    test_ran = await StorageBaseTests.handle_null_keys_when_reading(get_storage())


    assert test_ran

類別

DialogTestClient

用於隔離測試對話的用戶端。

建立 DialogTestClient 以測試對話,而不需要建立完整的配接器。

python client = DialogTestClient("test", MY_DIALOG, MY_OPTIONS) reply = await client.send_activity("first message") self.assertEqual(reply.text, "first reply", "reply failed")

針對通道標識碼,如果您不確定目標通道,請使用 「模擬器」或「測試」。 否則,建議您針對 Bot 所使用的通道標識碼,併為每個通道撰寫測試案例。 或者,可以使用測試配接器實例。 :type channel_or_adapter: Union[str, TestAdapter] :p aram target_dialog:要測試的對話框。 這會是測試用戶端的根對話方塊。 :type target_dialog:Dialog :p aram initial_dialog_options: (選擇性) 其他自變數,以傳遞至正在啟動的對話框。 :type initial_dialog_options: object :p aram 中間件:(選擇性) 要使用的測試配接器。 如果未提供此參數,測試用戶端會使用預設的TestAdapter。 :type 中間件:List[中間件] :p aram conversation_state: (選擇性) 在測試用戶端中使用的 ConversationState 實例。 :type conversation_state:ConversationState

DialogTestLogger

在單元測試期間,將傳入和傳出活動輸出為 json 字串的中間件。

初始化對話測試記錄器的新實例。

預設為 logging.getLogger(name.info。 :type log_func: Callable[..., None] :p aram json_indent:json 輸出的縮排,默認縮排為 4。 :type json_indent: int :p aram time_func:記錄時間範圍的 time 函式,預設為 time.monotonic。 :type time_func: Callable[[], float]

StorageBaseTests