首页 > 解决方案 > 使用 doctesting 对类内部定义的方法进行单元测试

问题描述

我需要定义: 1. ' init ' 的文档测试,它创建一个半径为 2.5 的圆'c1',并检查访问属性'radius' 返回 2.5。2. 为“area”定义一个文档测试,它创建一个半径为 2.5 的圆“c1”,并检查它计算的面积是否为 19.63。

我写了下面提到的代码,但没有得到输出。请建议。

class Circle:

    def __init__(self, radius):

        """
        >>> c1=Circle(2.5).__init__()
        2.5
        """
        self.radius = radius

    def area(self):

        """
        >>> c1=Circle(2.5).area()
        19.63

        """

        return round(math.pi*(self.radius**2),2)

标签: pythonpython-3.xdoctest

解决方案


这就是您的带有 doctests 的类的可能编写方式:

import math

class Circle:

    def __init__(self, radius):

        """
        >>> c1 = Circle(2.5)
        >>> c1.radius
        2.5
        """
        self.radius = radius

    def area(self):

        """
        >>> c1 = Circle(2.5)
        >>> c1.area()
        19.63

        """

        return round(math.pi*(self.radius**2),2)

这就是你应该如何运行doctest以获得详细的输出:

$ python -m doctest -v file.py
Trying:
    c1 = Circle(2.5)
Expecting nothing
ok
Trying:
    c1.radius
Expecting:
    2.5
ok
Trying:
    c1 = Circle(2.5)
Expecting nothing
ok
Trying:
    c1.area()
Expecting:
    19.63
ok
2 items had no tests:
    file
    file.Circle
2 items passed all tests:
   2 tests in file.Circle.__init__
   2 tests in file.Circle.area
4 tests in 4 items.
4 passed and 0 failed.
Test passed.

推荐阅读