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一样工作,因此这不应引起问题。

:示例:异步 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:对话框:p aram initial_dialog_options:(可选)其他参数(s)传递给正在启动的对话。 :type initial_dialog_options:对象:p aram 中间件:(可选)要使用的测试适配器。 如果未提供此参数,测试客户端将使用默认 TestAdapter。 :type 中间件:List[中间件] :p aram conversation_state:(可选)在测试客户端中使用的 ConversationState 实例。 :type conversation_state:ConversationState

DialogTestLogger

用于在单元测试期间将传入和传出活动作为 json 字符串输出到控制台的中间件。

初始化对话框测试记录器的新实例。

default to logging.getLogger(name.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