from test_pytest.pythoncode.calculator import Calculator
import logging
import pytest
'''
实现参数化
'''
class TestCalc:
def setup_class(self):
#setup会在每条用例执行之前分别执行
#如果想让用例里可以用到calc这个实例,需要让这个calc变成实例变量
#调用的时候使用self.calc
self.calc = Calculator()
logging.info("开始计算")
def teardown_class(self):
logging.info("结束计算")
#加法
@pytest.mark.parametrize('a, b, expect',[
[1, 1, 2],
[0.1, 0.1, 0.2],
[-1, -2, -3]
])
def test_add(self, a, b, expect):
#等号右侧是实际结果,左侧是预期结果
assert expect ==self.calc.add(a, b)
#减法
@pytest.mark.parametrize('a, b, expect',[
[2, 1, 1],
[0.2, 0.1, 0.1],
[-2, -4, 2],
[9, 10, -1]
])
def test_sub(self, a, b, expect):
#等号右侧是实际结果,左侧是预期结果
assert expect ==self.calc.sub(a, b)
#乘法
@pytest.mark.parametrize('a, b, expect',[
[2, 1, 2],
[0.2, 0.1, 0.02],
[-2, -2, 4],
[-2, 10, -20],
[99, 0, 0]
])
def test_mul(self, a, b, expect):
#等号右侧是实际结果,左侧是预期结果
assert expect ==self.calc.mul(a, b)
#除法
@pytest.mark.parametrize('a, b, expect',[
[2, 0, 1],
[0.2, 0.1, 2],
[-4, -2, 2],
[-4, 2, -2],
[5, 10, 0.5]
])
def test_div(self, a, b, expect):
#等号右侧是实际结果,左侧是预期结果
if b == 0:
logging.info("分母为0时无法计算!")
else:
assert expect ==self.calc.div(a, b)
作业