如何使用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