圆周函数的简单pytest?

时间:2018-05-24 15:53:44

标签: python pytest

我以前从未使用过PyTest而且对此感到非常困惑。我只是想为我的圆周函数编写基本测试。任何帮助将不胜感激。

import math

def getCircumference():
    radius = int(input("Please enter a radius size: "))
    circumference = 2 * math.pi * radius
    print("The circumference of the circle is", circumference)

1 个答案:

答案 0 :(得分:2)

单元测试的目的是测试函数的有效功能。最好通过检查函数是否为已知输入返回正确的结果来实现。您的函数不接受任何输入并且不返回结果,因此测试它比应该更复杂。在其他情况下它也没那么有用。

我对getCircumference函数的期望是:

  • 被命名为get_circumference(因为PEP 8)
  • 采用一个参数:radius
  • 返回周长(其名称暗示它返回一个圆周,毕竟)

因此:

def get_circumference(radius):
    return 2 * math.pi * radius

然后,测试会做类似的事情:

def test_get_circumference():
    # using pytest.approx to avoid problems related to floating point precision
    assert get_circumference(7) == pytest.approx(43.982297150257104)
    assert get_circumference(3.678) == pytest.approx(23.109555559806516)

另一方面,如果你真的想要按原样测试函数,你应该创建一个更复杂的测试,它将覆盖sys.stdin(为了伪造用户输入)和sys.stdout (为了验证输出)。