如何使用JUnit在Java中测试抽象类?

我是第一次使用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()运行。

在“JUnit常见问题解答”部分中,我找到了此链接,但我不理解作者想在此示例中说些什么。这行代码是什么意思?

public abstract Source getSource() ;

回答:

如果您没有该类的具体实现,并且方法不是static测试它们的重点?如果您有具体的类,那么您将作为具体类的公共API的一部分测试这些方法。

我知道您在想什么:“我不想一遍又一遍地测试这些方法,这就是创建抽象类的原因”,但是我的反对论点是,单元测试的目的是允许开发人员进行更改,运行测试,并分析结果。这些更改的一部分可能包括覆盖抽象类的方法(protected和)public,这可能会导致基本的行为更改。根据这些更改的性质,它可能会影响应用程序以意外方式(可能是负面方式)运行的方式。如果您有一个好的单元测试套件,则在开发时,由这些类型引起的问题应该很明显。

以上是 如何使用JUnit在Java中测试抽象类? 的全部内容, 来源链接: utcz.com/qa/419072.html

回到顶部