请用java程序写出求矩形的面积和周长,并使用Junit写出5个测试用例

用例可以是测0,负数,字符串,特殊符号,空值等等。
2024-11-20 04:36:35
推荐回答(2个)
回答(1):

//filename:Rectangular.java
// javac Rectangular.java
public class Rectangular {
    public double getDistance() {
        double result = 0;
        
        if (this.a == null || this.a <= 0) {
            System.out.println("Edge a Invalid");
        } else if (this.b == null || this.b <= 0) {
            System.out.println("Edge b Invalid");
        } else {
            result = (a + b) * 2;
        }
        
        return result;
    }
    public double getArea() {
        double result = 0;
        
        if (this.a == null || this.a <= 0) {
            System.out.println("Edge a Invalid");
        } else if (this.b == null || this.b <= 0) {
            System.out.println("Edge b Invalid");
        } else {
            result = a * b;
        }
        
        return result;
    }
    public void setA(double a) {
        this.a = a;
    }
    public double getA() {
        return a;
    }
    public void setB(double b) {
        this.b = b;
    }
    public double getB() {
        return b;
    }
    public Rectangular() {}
    public Rectangular(double a, double b) {
        this.a = a;
        this.b = b;
    }
    private double a;
    private double b;
}

//filename:TestRectangular.java
// 记得导包
public class TestRectangular {
    @Test
    public void testGetDistance() {
        double a, b, distance;
        Rectangular r;
        
        a = -1, b = -1;
        r = new Rectangular(a, b);
        distance = r.getDistance();
        assertTrue(distance == 0);
        
        a = -1, b = 0;
        r = new Rectangular(a, b);
        distance = r.getDistance();
        assertTrue(distance == 0);
        
        a = -1, b = 4;
        r = new Rectangular(a, b);
        distance = r.getDistance();
        assertTrue(distance == 0);
        
        a = 8, b = 4;
        r = new Rectangular(a, b);
        distance = r.getDistance();
        assertTrue(distance == 24);
    }
    
    @Test
    public void testGetArea() {
        double a, b, area;
        Rectangular r;
        
        a = -1, b = -1;
        r = new Rectangular(a, b);
        area = r.getArea();
        assertTrue(area == 0);
        
        a = -1, b = 0;
        r = new Rectangular(a, b);
        area = r.getArea();
        assertTrue(area == 0);
        
        a = -1, b = 4;
        r = new Rectangular(a, b);
        area = r.getArea();
        assertTrue(area == 0);
        
        a = 8, b = 4;
        r = new Rectangular(a, b);
        area = r.getArea();
        assertTrue(area == 32);
    }
}

回答(2):

public class Rectangle {
private int len, weigth;

public Rectangle(int i, int j) {
this.len = i;
this.weigth = j;
}

public int calcArea() {
if (len>0 && weigth>0)
return len * weigth;
else
return -1;
}

}
import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

/**
 * @author Lonnie
 *
 */
public class RectangleTest {

/**
 * @throws java.lang.Exception
 */
@Before
public void setUp() throws Exception {
}

/**
 * Test method for {@link shape.Rectangle#calcArea()}.
 */
@Test
public void testCalcArea1() {
Rectangle rec1 = new Rectangle(4,4);
assertEquals(16,rec1.calcArea());
}

/**
 * Test method for {@link shape.Rectangle#calcArea()}.
 */
@Test
public void testCalcArea2() {

Rectangle rec2 = new Rectangle(-1,5);
assertEquals(-1, rec2.calcArea());

Rectangle rec3 = new Rectangle(0,5);
assertEquals(-1,rec3.calcArea());
}
}