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)
解决方案
单元测试的目的是测试功能的有效功能。这最好通过检查函数是否为已知输入返回正确的结果来完成。您的函数不接受输入也不返回任何结果,因此测试起来比应有的复杂得多。它在其他情况下也不太有用。
我对getCircumference
函数的期望是:
- 被命名为 get_circumference (因为 PEP 8)
- 接受一个参数:半径
- 返回圆周(它的名字暗示它返回一个圆周,毕竟)
所以:
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
(为了验证输出)。
推荐阅读
- java - addCruise() -- NoSuchElementException: 找不到行
- reactjs - 从反应搜索栏中的选定值设置状态
- azure-cosmosdb - CosmosDB 中每个分类的前 N 个
- javascript - xAxis 标签显示在框外
- angular - 带有角度和 SpringBoot 的 POST 请求出现问题
- python - Pyspark - 将列转换为列表
- c++ - 如何在没有未来的情况下从线程中获取值?
- bash - cd - vs cd .. 解释
- javascript - 如何从 DropDownList 列表中找到选定的 DropDownList?
- python - Matplotlib 在独立(Exe)Python 文件中的使用