写一个测试三角形的黑盒测试的源码
时间: 2023-06-12 07:04:58 浏览: 147
以下是一个使用 Python 语言编写的测试三角形的黑盒测试的源码:
```
import unittest
class TestTriangle(unittest.TestCase):
def test_invalid_triangle(self):
self.assertEqual(classify_triangle(1, 2, 3), "Not a triangle")
self.assertEqual(classify_triangle(3, 4, -5), "Not a triangle")
self.assertEqual(classify_triangle(1, 2, 5), "Not a triangle")
def test_equilateral_triangle(self):
self.assertEqual(classify_triangle(1, 1, 1), "Equilateral")
self.assertEqual(classify_triangle(10, 10, 10), "Equilateral")
def test_isosceles_triangle(self):
self.assertEqual(classify_triangle(2, 2, 3), "Isosceles")
self.assertEqual(classify_triangle(5, 7, 7), "Isosceles")
def test_scalene_triangle(self):
self.assertEqual(classify_triangle(3, 4, 5), "Scalene")
self.assertEqual(classify_triangle(5, 12, 13), "Scalene")
def classify_triangle(a, b, c):
if a + b <= c or a + c <= b or b + c <= a:
return "Not a triangle"
elif a == b and b == c:
return "Equilateral"
elif a == b or b == c or a == c:
return "Isosceles"
else:
return "Scalene"
if __name__ == '__main__':
unittest.main()
```
这个测试代码定义了一个名为 `TestTriangle` 的测试类,其中包含了多个测试用例,分别测试了无效三角形、等边三角形、等腰三角形和普通三角形四种情况。每个测试用例都会调用 `classify_triangle` 函数,并断言函数返回的结果是否符合预期。
`classify_triangle` 函数接受三个参数 a、b、c,表示三角形的边长。在函数内部,首先判断三个参数是否能够构成三角形,如果不能,则返回 "Not a triangle"。否则,再判断三角形的类型,分别是等边三角形、等腰三角形和普通三角形。最后,返回对应的字符串。
在代码的最后,使用 `unittest.main()` 函数执行所有测试用例。
阅读全文