作为开发人员或程序员,每当您编写代码时,您通常会忽略一件事:测试。测试是开发的一部分,您应该严格测试应用程序以确保它们满足所需的功能。让我们从为什么需要测试开始:1.减少手动测试的需要由于测试用例是预先编写的,因此没有真正的理由进行手动测试。大多数时候,尤其是对于大型应用程序,您必须通过软件运行多个阶段来测试某个功能是否有效。这可以通过测试来避免。想象一下,每次运行应用程序时都必须使用特定的输入。通过测试,这将在每次运行时自动输入。2.允许更好的代码结构最好的做法是在开发之前创建测试用例。这迫使您在开始开发之前将系统作为一个整体来考虑。3.从长远来看允许更快的测试编码时,函数的实现可以改变,但输出保持不变。您可以简单地实现可以同时运行多个测试用例的特定测试用例,而不是在其实现更改时手动测试功能。我们将从关注一种特定类型的测试开始,即单元测试。这种特殊类型的测试用于测试小的代码单元,例如函数或类。要创建单元测试,我们将使用python标准库unittest。这种创建测试用例的方法通过创建一个包含所有测试用例的类来使用OOP(面向对象编程)。这将使我们能够一次运行类中的所有测试用例。注意:您可以使用任何您熟悉的IDE或文本编辑器(默认的pythonIDE就可以)。为此,我将演示如何使用带有python扩展的VisualStudioCode。我们将首先导入我们的单元测试库:importunittest现在做我们的类声明:classTestingClass(unittest.TestCase):注意(unittest.TestCase)在python中是继承。为类提供功能。在类中添加第一个函数:self.assertEqual是之前继承的类(unittest.TestCase)提供的方法。此方法测试两个变量是否具有相同的值。添加我们的测试运行器。这就是让我们的单元测试运行的原因:unittest.main()这是完整代码的样子:上面的代码演示了测试9+1是否等于11。如果你了解基础数学,你应该知道9+1=10。因此,这个测试用例会失败。输出:你应该猜到了。失败!解决方法很简单。将代码修改为:test_var=9+2输出:测试函数外部前面的示例对于函数外部测试可能不太现实。让我们用函数中的值替换test_var值。我们将在文件顶部添加一个函数声明。此函数将两个数字相加。将9+2替换为函数调用add(9,2)并运行代码。到目前为止,我们只实现了一个测试用例。TestingClass中的每个函数/方法(在本例中都是相同的)代表一个测试用例。让我们添加另一个测试用例test_multiple_num_addition。注意:所有创建的测试用例的名称都应以“测试”一词开头,否则测试运行器将无法识别它。您的代码应如下所示:运行:这显然会失败,因为函数参数只接受两个参数。但是,如果我们真的想添加更多数字怎么办?这可以通过更改add函数来解决:注意values参数左侧的星号(*)。这允许您输入多个参数并允许将值存储为元组。执行前的代码:Execution:执行成功!在函数参数的变量前加星号称为非关键字参数。总之,尝试测试可能会给代码带来额外的健壮性。它还可以改变您的开发方式。拥有测试心态可确保减少生产中的错误,并减少开发过程中重复的手动测试。*原文链接:https://medium.com/swlh/python-testing-a8156d022eef
