实验一:单元测试实现三角形分类
首先,我们需要编写一个函数 classify_triangle()
,用于判断三角形的类型。根据题目要求,我们可以设计如下的函数:
def classify_triangle(a, b, c):
"""
判断三角形类型
:param a: 边 a 的长度
:param b: 边 b 的长度
:param c: 边 c 的长度
:return: 三角形类型的字符串
"""
if a + b <= c or b + c <= a or a + c <= b:
return "无效三角形"
elif a == b == c:
return "等边三角形"
elif a == b or b == c or a == c:
return "等腰三角形"
else:
return "一般三角形"
接下来,我们需要设计测试用例来验证这个函数的正确性。一个好的测试用例应该覆盖有效等价类和无效等价类。以下是一些测试用例的示例:
import unittest
class TriangleClassificationTestCase(unittest.TestCase):
def test_invalid_triangle(self):
self.assertEqual(classify_triangle(1, 2, 5), "无效三角形")
self.assertEqual(classify_triangle(3, 4, 10), "无效三角形")
self.assertEqual(classify_triangle(5, 5, 10), "无效三角形")
def test_equilateral_triangle(self):
self.assertEqual(classify_triangle(3, 3, 3), "等边三角形")
self.assertEqual(classify_triangle(6, 6, 6), "等边三角形")
def test_isosceles_triangle(self):
self.assertEqual(classify_triangle(3, 3, 4), "等腰三角形")
self.assertEqual(classify_triangle(5, 5, 8), "等腰三角形")
def test_scalene_triangle(self):
self.assertEqual(classify_triangle(3, 4, 5), "一般三角形")
self.assertEqual(classify_triangle(5, 6, 7), "一般三角形")
if __name__ == '__main__':
unittest.main()
运行结果:
上述测试用例中,我分别测试了无效三角形、等边三角形、等腰三角形和一般三角形的情况。其中,assertEqual
断言用于判断函数的返回值是否与预期相符。