我以前从未使用过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)
答案 0 :(得分:2)
单元测试的目的是测试函数的有效功能。最好通过检查函数是否为已知输入返回正确的结果来实现。您的函数不接受任何输入并且不返回结果,因此测试它比应该更复杂。在其他情况下它也没那么有用。
我对getCircumference
函数的期望是:
因此:
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
(为了验证输出)。