Java @Override方法的JUnit测试
我有一个包含以下类的程序:Java @Override方法的JUnit测试,java,unit-testing,junit,interface,Java,Unit Testing,Junit,Interface,我有一个包含以下类的程序: public class Plane implements Flyable { private final int numberOfEngines; private final String model; public Plane(int engines, String m) { numberOfEngines = engines; model = m; } @Override
public class Plane implements Flyable
{
private final int numberOfEngines;
private final String model;
public Plane(int engines, String m)
{
numberOfEngines = engines;
model = m;
}
@Override
public String toString()
{
return String.format("%s with %d engines", model, numberOfEngines);
}
@Override
public void launch() {
System.out.println("Rolling until take-off");
}
@Override
public void land() {
System.out.println("Rolling to a stop");
}
}
我目前正在尝试为toString、launch和land方法编写JUnit测试。这就是我到目前为止所做的:
class PlaneTest {
@Test
void testToString() {
assertEquals("Boing with 4 engines", Plane.this.toString());
}
@Test
void testLaunch() {
fail("Not yet implemented");
}
@Test
void testLand() {
fail("Not yet implemented");
}
我的问题是我一辈子都搞不清楚如何在Plane类中正确调用toString方法。Eclipse向我展示toString方法的唯一方式是在它前面加上“this”,但是我不知道如何创建一个Plane实例供它使用。我已经花了太多的时间来思考这个问题,所以如果有人能在这里帮助我,我将不胜感激。提前谢谢你 您需要使用
Plan
实例调用它,因为toString()
不是静态的,并且需要初始化类成员
@Test
void testToString() {
assertEquals("Boeing with 4 engines", new Plane(4, "Boeing").toString());
}
真不敢相信这个解决方案有多容易。尽管如此,还是非常感谢你!!!