编写一个被测试类Calculator,这个类可以简单实现加、减、乘、除、平方、开方的计算,然后对这些功能进行单元测试。这个类存在某些缺陷和错误,在测试时,系统给予提示。
时间: 2024-02-07 16:03:47 浏览: 54
好的,我可以帮你回答这个问题。以下是一个简单的Calculator类的示例代码,以及相应的单元测试:
```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) {
return a / b;
}
public int square(int a) {
return a * a;
}
public double squareRoot(int a) {
return Math.sqrt(a);
}
}
```
单元测试代码如下:
```java
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
public class CalculatorTest {
private Calculator calculator;
@Before
public void setUp() {
calculator = new Calculator();
}
@Test
public void testAdd() {
Assert.assertEquals(4, calculator.add(2, 2));
}
@Test
public void testSubtract() {
Assert.assertEquals(2, calculator.subtract(4, 2));
}
@Test
public void testMultiply() {
Assert.assertEquals(6, calculator.multiply(2, 3));
}
@Test
public void testDivide() {
Assert.assertEquals(2, calculator.divide(4, 2));
}
@Test
public void testSquare() {
Assert.assertEquals(9, calculator.square(3));
}
@Test
public void testSquareRoot() {
Assert.assertEquals(2.0, calculator.squareRoot(4), 0.0);
}
}
```
这些测试用例可以检验Calculator类的各个方法是否按照预期工作。但是这个类中仍然存在一些缺陷和错误。例如,除法方法中没有考虑除数为0的情况,开方方法中没有考虑负数的情况等等。在实际开发中,我们需要更加全面地考虑这些情况,以确保我们的代码能够正确地处理各种输入。
阅读全文