单位测试底漆
在为插件创建单元测试时,推荐的实践是将它们存储在Unit_Test文件夹中的插件目录的根级别中。
创建一个单元测试
单元测试必须符合特定格式。请注意您准备写入单元测试时: 这是一个正确写入的单元测试的示例: 写入TestEnclose类后,您可以通过以下方式之一在Pycharm中运行它: 在Pycharm中,单击课程左侧显示的绿色箭头。 从命令行运行测试。有关更多信息,请参阅这里. 注意:如果您从命令行运行,您将拥有Python路径问题。要修复此我使用以下代码。 这段代码将插件结构的根目录添加到Python路径中。这允许您从icon_ 一旦您的单位测试写入和运行,您就可以开始测试代码。 在测试代码之前,你必须具备以下条件: 接下来,您需要配置以下设置: 以下是所有可用的断言陈述:https://docs.python.org/3/library/unittest.html#test-cases. 通常,您将使用assertEquals,但有几个测试断言是有用的,如assertTrue和assertRaises。 使用外部调用快速发展的方法是使用邮递员来确保您的API调用正确,将该有效载荷复制到插件项目中并将呼叫模拟到API。对于大型复杂呼叫,这可能会产生巨大的节省时间。 假设:您知道如何使用邮递员,可以使用该工具进行API调用。如果你更熟悉这一点,卷曲也会工作。 以下示例来自Office 365电子邮件插件。这是一大吨的代码,但它比它看起来更容易。 这只是简单地将有效负载读取为文本,这使得模拟API调用更加容易。 此代码块模拟请求。要点()方法。Requests.get()方法模拟了一个python命令,使其成为运行测试的有效方法。 在配置设置时注意以下内容: 在此代码块中,我创建了一个我可以传递到我的操作类的假连接类。 此代码非常具体于O365插件,但我想记下您必须为我们的插件使用的一些常见类创建模拟类。 最后......实际测试: 这是有关的更多信息嘲笑 对于非传统的苔丝单元,我们可以做的最重要的事情之一是异常处理和奇异的错误场景。(想从状态码为200的响应中得到错误的JSON ?这就是如何测试它!) 在本例中,我们为make_kql_for_request生成了错误的输入,这将导致它抛出异常。我们希望确保它会抛出一个PluginException,而不是一些用户可能不知道如何处理的其他错误。 打开一个背景 自从它们基本上是无穷无尽的循环,难以测试我们的触发器是非常困难的。我们建议您将逻辑从触发器的“主循环”中移动到单独的功能中,并通过直接单元测试测试它们。 最终,您仍然必须验证您的触发器“主循环”。以下示例演示了如何设置呼叫和超时装饰器以确保未达到任何异常。
test_
运行单元测试
没有外部呼叫的单元测试
用外部呼叫测试
带有例外的单元测试
与
允许我们捕获异常并验证我们具有正确的异常。对触发器的单位测试
@timeout_pass
告诉测试框架一个超时正在通过测试@ timeout_decorator.Timeout(3)
-告诉测试在3秒后超时。当interval设为1时,应该会有两个循环足以验证我们通过了这个测试。附录