class TestCalc(unittest.TestCase): def setUp(self) -> None: self.calc = Calc() def test_add_1(self): self.assertEqual(3, self.calc.add(1, 2)) def test_add_2(self): self.assertEqual(0.03, self.calc.add(0.01, 0.02))
def test_add_many_numbers(): s = range(100) c = Calc() res = c.add(*s) assert res == 4950
class TestCalc: def setup(self): self.calc = Calc() ''' 1.正数相加 2.负数相加 3.小数相加 4.0相加 ''' # @pytest.mark.parametrize("a,b,result", [ # (1, 2, 3), # (-1, -2, -3), # (0.1, 0.2, 0.3), # (0, 0, 0) # ]) @pytest.mark.parametrize("a,b,result", data()) def test_add(self, a, b, result): assert (self.calc.add(a, b), result) ''' 1.正数相除 2.负数相除 3.小数相除 4.除以0 ''' @pytest.mark.parametrize("a,b,result", [ (1, 2, 0.5), (-1, -2, 0.5), (0.1, 0.2, 0.5), (1, 0, "error") ]) def test_div(self, a, b, result): assert (self.calc.div(a, b), result)
def test_add_two_numbers(): c = Calc() res = c.add(4, 5) assert res == 9
def test_add_three_numbers(): c = Calc() res = c.add(4, 5, 6) assert res == 15
class TestCalc: data = get_data() print(data) @classmethod def setup_class(cls): print("开始计算") @classmethod def teardown_class(cls): print("计算结束") def setup(self): self._calc = Calc() print("开始计算") def teardown(self): print("计算结束") @pytest.mark.parametrize('x, y, except_result', data['add']['datas'], ids=data['add']['ids']) def test_add(self, x, y, except_result): print(f"a={x} , b ={y} ,result={except_result}") result = self._calc.add(x, y) round(result, 2) assert except_result == result @pytest.mark.parametrize('x, y, except_result', data['subtract']['datas'], ids=data['subtract']['ids']) def test_subtract(self, x, y, except_result): result = self._calc.subtract(x, y) round(result, 2) assert except_result == result @pytest.mark.parametrize('x, y, except_result', data['multiply']['datas'], ids=data['multiply']['ids']) def test_multiply(self, x, y, except_result): result = self._calc.multiply(x, y) round(result, 2) assert except_result == result @pytest.mark.parametrize('x, y, except_result', data['divide']['datas'], ids=data['divide']['ids']) def test_divide(self, x, y, except_result): if y == 0: try: self._calc.divide(x, y) except ZeroDivisionError as e: print("You can't divide by zero") else: result = self._calc.divide(x, y) round(result, 2) assert except_result == result if __name__ == '__main__': pytest.main(['-v', '-s'])