创建一个Triangle类,并用JUnit进行单元测试
时间: 2024-03-06 15:46:33 浏览: 40
好的,我可以帮您解答这个问题。首先,我们可以创建一个Triangle类,如下所示:
```java
public class Triangle {
private double side1;
private double side2;
private double side3;
public Triangle(double side1, double side2, double side3) {
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
public double getSide1() {
return side1;
}
public double getSide2() {
return side2;
}
public double getSide3() {
return side3;
}
public double getArea() {
double s = (side1 + side2 + side3) / 2;
return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));
}
public boolean isRightTriangle() {
return (side1 * side1 + side2 * side2 == side3 * side3) ||
(side1 * side1 + side3 * side3 == side2 * side2) ||
(side2 * side2 + side3 * side3 == side1 * side1);
}
}
```
然后,我们可以使用JUnit进行单元测试。下面是一个示例:
```java
import static org.junit.Assert.*;
import org.junit.Test;
public class TriangleTest {
private static final double DELTA = 1e-15;
@Test
public void testGetArea() {
Triangle triangle = new Triangle(3, 4, 5);
assertEquals(6.0, triangle.getArea(), DELTA);
}
@Test
public void testIsRightTriangle() {
Triangle triangle1 = new Triangle(3, 4, 5);
assertTrue(triangle1.isRightTriangle());
Triangle triangle2 = new Triangle(5, 12, 13);
assertTrue(triangle2.isRightTriangle());
Triangle triangle3 = new Triangle(1, 2, 3);
assertFalse(triangle3.isRightTriangle());
}
}
```
在这个示例中,我们使用了`assertEquals`和`assertTrue`来断言`getArea`和`isRightTriangle`方法的返回值是否符合预期。`DELTA`是一个非常小的数,用于比较两个浮点数是否相等。我们还可以使用`assertFalse`来测试`isRightTriangle`方法的返回值。