Java白盒测试三角形函数_根据下面三角形程序,结合白盒测试用例设计技术,在Junit工具中编写对应的单元测试脚本。...
时间: 2023-11-22 21:53:12 浏览: 39
好的,我们可以先来看一下这个三角形函数的实现:
```java
public class Triangle {
public static String classify(int a, int b, int c) {
if (a <= 0 || b <= 0 || c <= 0) {
return "NotATriangle";
}
if (a + b <= c || a + c <= b || b + c <= a) {
return "NotATriangle";
}
if (a == b && b == c) {
return "Equilateral";
}
if (a == b || b == c || a == c) {
return "Isosceles";
}
return "Scalene";
}
}
```
这个函数的作用是判断一个三角形的类型,返回值有四种:不是三角形(NotATriangle)、等边三角形(Equilateral)、等腰三角形(Isosceles)和普通三角形(Scalene)。接下来我们就可以根据这个函数实现相应的测试用例了。
首先,我们需要考虑一下哪些输入对于这个函数来说是无效的。根据函数的实现,当 a、b、c 中有一个小于等于 0 时,或者其中两个数之和小于等于第三个数时,函数会返回 NotATriangle。因此,我们可以设计以下测试用例:
```java
@Test
public void testNotATriangle() {
assertEquals("NotATriangle", Triangle.classify(0, 1, 2));
assertEquals("NotATriangle", Triangle.classify(1, -1, 2));
assertEquals("NotATriangle", Triangle.classify(1, 2, 3));
assertEquals("NotATriangle", Triangle.classify(1, 2, 4));
}
```
接下来,我们需要测试等边三角形、等腰三角形和普通三角形。对于等边三角形,a、b、c 三个参数的值都应该相等。因此,我们可以设计以下测试用例:
```java
@Test
public void testEquilateral() {
assertEquals("Equilateral", Triangle.classify(1, 1, 1));
assertEquals("Equilateral", Triangle.classify(5, 5, 5));
}
```
对于等腰三角形,a、b、c 中有两个数相等。因此,我们可以设计以下测试用例:
```java
@Test
public void testIsosceles() {
assertEquals("Isosceles", Triangle.classify(2, 2, 3));
assertEquals("Isosceles", Triangle.classify(2, 3, 2));
assertEquals("Isosceles", Triangle.classify(3, 2, 2));
}
```
对于普通三角形,a、b、c 三个参数的值都不相等。因此,我们可以设计以下测试用例:
```java
@Test
public void testScalene() {
assertEquals("Scalene", Triangle.classify(3, 4, 5));
assertEquals("Scalene", Triangle.classify(5, 4, 3));
assertEquals("Scalene", Triangle.classify(4, 3, 5));
}
```
这样,我们就完成了对于 Triangle 类的单元测试设计。