2、第二题,使用unitest编写测试类:
class Calculator:
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
if b == 0:
raise ValueError("Cannot divide by zero")
return a / b
答案:
第一个python文件 CalculatoTest.py
import unittest
class TestCalculator(unittest.TestCase):
def test_add(self):
self.assertEqual(Calculator.add(2, 3), 5)
self.assertEqual(Calculator.add(-1, 1), 0)
def test_subtract(self):
self.assertEqual(Calculator.subtract(5, 3), 2)
self.assertEqual(Calculator.subtract(1, -1), 2)
def test_multiply(self):
self.assertEqual(Calculator.multiply(2, 3), 6)
self.assertEqual(Calculator.multiply(-1, 1), -1)
def test_divide(self):
self.assertEqual(Calculator.divide(6, 3), 2)
self.assertEqual(Calculator.divide(-1, 1), -1)
with self.assertRaises(ValueError):
Calculator.divide(6, 0)
第二个文件run_calculatorTest
if __name__ == '__main__':
test_suite=unittest.TestSuite()
test_suite.addTest(TestCalculator('test_add'))#加用例单个用例方法
test_suite.addTest(TestCalculator('test_subtract'))
test_suite.addTest(TestCalculator('test_multiply'))
test_suite.addTest(TestCalculator('test_divide'))
runner = unittest.TextTestRunner()
# with open('report.html','wb') as fw:
# runner=HTMLTestRunner.HTMLTestRunner(stream=fw,title='接口测试报告',description=
# '第一次接口测试报告',verbosity=2
# )
runner.run(test_suite)