gpt4 book ai didi

java - 如何使用 JUnit 测试 Java 中的抽象类?

转载 作者:太空宇宙 更新时间:2023-11-04 12:14:03 27 4
gpt4 key购买 nike

我是使用 JUnit 进行 Java 测试的新手。我必须使用 Java,并且我想使用单元测试。

我的问题是:我有一个带有一些抽象方法的抽象类。但有些方法并不是抽象的。如何使用 JUnit 测试此类?示例代码(非常简单):

abstract class Car {

public Car(int speed, int fuel) {
this.speed = speed;
this.fuel = fuel;
}

private int speed;
private int fuel;

abstract void drive();

public int getSpeed() {
return this.speed;
}

public int getFuel() {
return this.fuel;
}
}

我想测试 getSpeed()getFuel() 函数。

与此问题类似的问题是 here ,但它没有使用 JUnit。

在 JUnit FAQ 部分,我发现 this link ,但是我不明白作者想用这个例子表达什么。这行代码是什么意思?

public abstract Source getSource() ;

最佳答案

如果您没有该类的具体实现,并且方法不是静态,那么测试它们的意义何在?如果您有一个具体类,那么您将测试这些方法作为具体类的公共(public) API 的一部分。

我知道您在想什么“我不想一遍又一遍地测试这些方法,这就是我创建抽象类的原因”,但我对此的反驳是,单元测试的目的是允许开发人员进行更改、运行测试并分析结果。这些更改的一部分可能包括重写抽象类的方法,包括 protectedpublic,这可能会导致根本的行为变化。根据这些更改的性质,它可能会以意想不到的方式(可能是负面的方式)影响应用程序的运行方式。如果您有一个良好的单元测试套件,那么由这些类型的更改引起的问题应该在开发时显而易见。

关于java - 如何使用 JUnit 测试 Java 中的抽象类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39584731/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com