我是使用 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()
and getFuel()
功能。
与这个问题类似的问题是here,但它没有使用 JUnit。
在 JUnit FAQ 部分,我发现这个链接,但是我不明白作者想用这个例子表达什么。这行代码是什么意思?
public abstract Source getSource() ;
如果您没有类的具体实现并且方法也没有static
测试它们有什么意义?如果您有一个具体类,那么您将测试这些方法作为具体类的公共 API 的一部分。
我知道您在想什么“我不想一遍又一遍地测试这些方法,这就是我创建抽象类的原因”,但我对此的反驳是,单元测试的目的是允许开发人员进行更改,运行测试并分析结果。这些更改的一部分可能包括重写抽象类的方法,两者protected
and public
,这可能会导致根本性的行为改变。根据这些更改的性质,它可能会以意想不到的方式(可能是负面的方式)影响应用程序的运行方式。如果您有一个好的单元测试套件,那么由这些类型的更改引起的问题应该在开发时显而易见。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)