单元测试
经验心得:
编写单元测试:在编写代码的同时编写单元测试,可以及早发现潜在的问题。
测试覆盖率:确保单元测试覆盖主要的代码路径,特别是边界条件和异常情况。
自动化测试:使用自动化测试框架(如junit、pytest等)来运行测试,提高效率。
我正在开发一个简单的计算器类 calculator,包含加法、减法、乘法和除法方法。
class calculator:
def add(self, a, b):
return a b
def subtract(self, a, b):
return a - b
def multiply(self, a, b):
return a * b
def divide(self, a, b):
if b == 0:
raise valueerror("division by zero is not allowed")
return a / b
编写单元测试:
import unittest
from calculator import calculator
class testcalculator(unittest.testcase):
def setup(self):
self.calc = calculator()
def test_add(self):
self.assertequal(self.calc.add(1, 2), 3)
self.assertequal(self.calc.add(-1, 1), 0)
def test_subtract(self):
self.assertequal(self.calc.subtract(3, 2), 1)
self.assertequal(self.calc.subtract(2, 3), -1)
def test_multiply(self):
self.assertequal(self.calc.multiply(2, 3), 6)
self.assertequal(self.calc.multiply(0, 5), 0)
def test_divide(self):
self.assertequal(self.calc.divide(6, 3), 2)
with self.assertraises(valueerror):
self.calc.divide(1, 0)
if __name__ == '__main__':
unittest.main()