import pytest
def is_match_condition(a):
“”"
判断输入参数是否满足条件
:param a: 输入参数
:return: 满足条件返回 “符合条件”,否则返回对应场景提示信息
“”"
# 判断 a 的类型
if not (isinstance(a, int) or isinstance(a, float)):
return “参数为非数字”
# 判断 a 的范围
if a > 99 or a < -99:
return “参数大小超出范围”
return “符合条件”
def add(a, b):
“”"
相加方法
:param a: 加数
:param b: 被加数
:return: a + b 的结果,或者提示信息
“”"
# 判断 a 参数类型与范围符合条件
if is_match_condition(a) == “符合条件”:
# 判断 b 参数类型与范围符合条件
if is_match_condition(b) == “符合条件”:
return a + b
# b 不符合条件,返回提示信息
else:
return f"b{is_match_condition(b)}"
# a 不符合条件,返回提示信息
else:
return f"a{is_match_condition(a)}"
@pytest.mark.parametrize(
“a, b,expect”,
[
[1, 2, 3],
[1.1, 2.4, 3.5],
[“s”, 2, “a参数为非数字”],
[100, 22, “a参数大小超出范围”],
[“&*(%#$”, 2, “a参数为非数字”],
[99, 99, 198],
[22, 100, “b参数大小超出范围”]
]
)
def test_add(a, b, expect):
result = add(a, b)
assert result == expect
def setup_function():
print(“开始计算”)
def teardown_function():
print(“结束计算”)
def teardown_module():
print(“结束测试”)