首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何用JUnit测试Java中的抽象类?

如何用JUnit测试Java中的抽象类?
EN

Stack Overflow用户
提问于 2018-03-27 05:18:35
回答 2查看 0关注 0票数 0

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

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

代码语言:javascript
复制
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。

在JUnit FAQ部分,我找到了这个链接,但我不明白作者想要用这个例子说什么。这段代码是什么意思?

代码语言:javascript
复制
public abstract Source getSource() ;
EN

回答 2

Stack Overflow用户

发布于 2018-03-27 13:44:55

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

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

票数 0
EN

Stack Overflow用户

发布于 2018-03-27 14:24:10

创建一个继承抽象类的具体类,然后测试具体类从抽象类继承的函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003712

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档