创建一个Triangle类,根据输入的三边判断能否构成等边三角形、等腰三角形、一般三角形,并用JUnit进行单元测试并用JUnit进行单元测试
时间: 2024-03-06 22:47:24 浏览: 35
好的,下面是Triangle类的实现:
```java
public class Triangle {
private double a, b, c;
public Triangle(double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
}
public boolean isEquilateral() {
return a == b && b == c;
}
public boolean isIsosceles() {
return a == b || b == c || a == c;
}
public boolean isScalene() {
return a != b && b != c && a != c;
}
public String getType() {
if (isEquilateral()) {
return "Equilateral";
} else if (isIsosceles()) {
return "Isosceles";
} else {
return "Scalene";
}
}
}
```
然后是对Triangle类进行JUnit单元测试的代码:
```java
import org.junit.Test;
import static org.junit.Assert.*;
public class TriangleTest {
@Test
public void testEquilateral() {
Triangle t = new Triangle(2, 2, 2);
assertTrue(t.isEquilateral());
assertEquals("Equilateral", t.getType());
}
@Test
public void testIsosceles() {
Triangle t = new Triangle(3, 3, 2);
assertTrue(t.isIsosceles());
assertEquals("Isosceles", t.getType());
}
@Test
public void testScalene() {
Triangle t = new Triangle(3, 4, 5);
assertTrue(t.isScalene());
assertEquals("Scalene", t.getType());
}
@Test
public void testInvalid() {
Triangle t = new Triangle(1, 2, 3);
assertFalse(t.isEquilateral());
assertFalse(t.isIsosceles());
assertFalse(t.isScalene());
assertNull(t.getType());
}
}
```
以上代码中,我们分别测试了能够构成等边三角形、等腰三角形、一般三角形和不能构成三角形的情况。如果输入的三边不能构成三角形,则返回null。如果能构成三角形,则返回三角形的类型,即Equilateral、Isosceles或Scalene。