此测试运行但失败。不知道为什么?有一个长度为1的潜水艇。
@Test
public void testShipConstructor() {
assertTrue(Submarine.length == 1);
}
以下是该类的代码:
public abstract class Ship {
private int size;
public static int length;
protected Ship(int size, String type, String shortForm) {
this.size = size;
this.setType(type);
this.shortForm = shortForm;
}
public static void setLength(int length) {
}
public int getLength() {
return length;
}
int getSize() {
return size;
}
}
public class Submarine extends Ship {
private final static int SIZE = 1;
/**
* * Constructor, sets inherited length variable.
*/
public Submarine() {
super(SIZE, "Submarine", "#");
}
}
答案 0 :(得分:4)
您是否在某处实例化了Ship类?我假设构造函数采用值n来表示长度?
假设public class Submarine extends Ship
以及Submarine(int size){}
或Ship(int ship){}
您的测试应包括:
int desiredSize = 1;
Submarine mySub = new Submarine(desiredSize);
assertEquals(mySub.getSize(), desiredSize);
答案 1 :(得分:1)
Submarine是班级名字吗?在这种情况下,我认为长度是静态的,因为您以静态方式访问它。所以你应该在构造函数之外初始化长度。此外,您的测试不会测试构造函数。