编写一个被测试类Calculator,不用assert,这个类可以简单实现加、减、乘、除、平方、开方的计算,然后对这些功能进行单元测试。这个类存在某些缺陷和错误,在测试时,系统给予提示。
时间: 2024-02-07 10:03:47 浏览: 53
简单计算器,能够实现加减乘除,还有就是开方,对数……
好的,以下是一个简单的Calculator类的示例代码,以及相应的单元测试,不使用assert:
```java
public class Calculator {
public int add(int a, int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
public int multiply(int a, int b) {
return a * b;
}
public int divide(int a, int b) {
if (b == 0) {
throw new IllegalArgumentException("除数不能为0");
}
return a / b;
}
public int square(int a) {
return a * a;
}
public double squareRoot(int a) {
if (a < 0) {
throw new IllegalArgumentException("不能对负数进行开方");
}
return Math.sqrt(a);
}
}
```
单元测试代码如下:
```java
import org.junit.Before;
import org.junit.Test;
public class CalculatorTest {
private Calculator calculator;
@Before
public void setUp() {
calculator = new Calculator();
}
@Test(expected = IllegalArgumentException.class)
public void testDivideByZero() {
calculator.divide(4, 0);
}
@Test(expected = IllegalArgumentException.class)
public void testSquareRootOfNegativeNumber() {
calculator.squareRoot(-4);
}
}
```
这些测试用例可以检验Calculator类的各个方法是否按照预期工作。如果方法抛出了异常,测试就会通过。这种方式可以在代码中显式地处理异常,并提供有用的错误信息,以帮助开发人员诊断和修复问题。在实际开发中,我们需要更加全面地考虑这些情况,以确保我们的代码能够正确地处理各种输入。
阅读全文