java - @Override 方法的 JUnit 测试
问题描述
我有一个包含以下类的程序:
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());
}
推荐阅读
- jinja2 - 如何自定义 ckan header 站点导航选项卡
- java - 除了按位与之外,还有其他用途吗?
- c++ - 用 libxml2 打印漂亮吗?
- swift - HKLiveWorkoutBuilder + GPS HKQuantityTypeIdentifier.distanceWalkingRunning
- c - 如何使用 atexit() 函数清理函数调用?
- c# - 下拉 selectedIndexChange 事件正在调用 Radiobutton selectedIndexChange 事件。两个控件都在中继器内
- file-management - 如何比较两个文件夹的差异并保存在新文件夹中
- java - 为什么我在 ListView 中使用 Glide 时图像的大小会令人困惑?
- java - 可以在依赖集 Maven 中添加多个 outputDirectory 而无需冗余代码
- ios - 如何检测 UIBezierPath 的交集并将其擦除