Python 一个测试用例应该覆盖多少?

Python 一个测试用例应该覆盖多少?,python,unit-testing,Python,Unit Testing,到目前为止,我从未编写过正确的测试,只有在测试成功后我会处理的小程序。我正在浏览Python的unittest模块和网络教程,但有些东西我不清楚 一个TestCase?我在网上看到过这样的例子,它们有TestCase类,只有一个方法,还有测试几乎所有可用功能的类 在我的例子中,我试图为一个简单的bloom过滤器编写一个测试。您认为我应该如何组织我的测试用例?我将创建一个包含多个测试方法的测试用例。bloom过滤器具有简单的语义,因此只有一个测试用例。我通常为每个特性添加一个测试用例。简单地说:一

到目前为止,我从未编写过正确的测试,只有在测试成功后我会处理的小程序。我正在浏览Python的
unittest
模块和网络教程,但有些东西我不清楚

一个
TestCase
?我在网上看到过这样的例子,它们有
TestCase
类,只有一个方法,还有测试几乎所有可用功能的类


在我的例子中,我试图为一个简单的bloom过滤器编写一个测试。您认为我应该如何组织我的测试用例?

我将创建一个包含多个测试方法的测试用例。bloom过滤器具有简单的语义,因此只有一个测试用例。我通常为每个特性添加一个测试用例。

简单地说:一个单元测试应该涵盖程序的单个特性。这就是我要说的。这就是为什么它们被称为单元测试

当然,我们对特征的理解可能会有所不同。考虑一下你的程序中最小的部分,它们可能会坏掉或者不能按预期工作。考虑代码的业务需求。这些是您希望专用单元测试涵盖的每个部分

通常,单元测试是小型的、孤立的和原子的。它们应该易于理解,它们应该彼此独立地失败/通过,并且应该快速执行。正确的单元测试的一个很好的标志是单一断言——如果您发现自己写得更多,那么您可能测试得太多,这表明您需要对给定的特性进行多个测试。然而,这不是一个严格的规则——涉及的代码越复杂,单元测试就越复杂

编写测试时,很容易分割代码功能并测试这些分离的部分(这应该让您了解测试的原子性)。例如,如果您有一个方法验证输入,然后调用服务并最终返回结果,那么您通常希望涵盖所有三个(验证、调用、返回)步骤