testing パッケージ

モジュール

about
dialog_test_client
dialog_test_logger
storage_base_tests

すべてのストレージ プロバイダーが独自のテストで実装する必要がある基本テスト。 内部的に、ストレージ ベースのアサーションを処理します。

コードが完了まで実行されたことを示すアサーションが渡され、内部アサーションが渡された場合、すべてのテストは true を返します。 したがって、これらの静的テストを使用するすべてのテストでは、メソッドが true を返すかどうかを厳密に確認する必要があります。

注: Python は、他の SDK が null 値を持つプロパティを持つ場合と同様に、None 値を持つプロパティを持つディクテーションを持つことはできません。 このため、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")

チャネル ID の場合は、ターゲットとするチャネルが不明な場合は、"エミュレーター" または "テスト" を使用します。 それ以外の場合は、ボットが使用するチャネルの ID を使用し、各チャネルのテスト ケースを記述することをお勧めします。 または、テスト アダプター インスタンスを使用できます。 :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 middlewares: (省略可能) 使用するテスト アダプター。 このパラメーターが指定されていない場合、テスト クライアントは既定の TestAdapter を使用します。 :type ミドルウェア: List[ミドルウェア] :p aram conversation_state: (省略可能) テスト クライアントで使用する ConversationState インスタンス。 :type conversation_state: ConversationState

DialogTestLogger

単体テスト中に受信アクティビティと送信アクティビティを json 文字列としてコンソールに出力するミドルウェア。

ダイアログ テスト ロガーの新しいインスタンスを初期化します。

既定値は logging.getLogger(.info します。 :type log_func: Callable[..., None] :p aram json_indent: json 出力のインデント、既定のインデントは 4 です。 :type json_indent: int :p aram time_func: 時間範囲を記録する時間関数。既定では time.monotonic 。 :type time_func: Callable[[], float]

StorageBaseTests