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

2023-11-23

我是使用 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(使用前将#替换为@)

如何使用 JUnit 测试 Java 中的抽象类? 的相关文章

  • 不同帐户上的 Spring Boot、JmsListener 和 SQS 队列

    我正在尝试开发一个 Spring Boot 1 5 应用程序 该应用程序需要侦听来自两个不同 AWS 帐户的 SQS 队列 是否可以使用 JmsListener 注解创建监听器 我已检查权限是否正确 我可以使用 getQueueUrl 获取
  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • Junit:如何测试从属性文件读取属性的方法

    嗨 我有课ReadProperty其中有一个方法ReadPropertyFile返回类型的Myclass从属性文件读取参数值并返回Myclass目的 我需要帮助来测试ReadPropertyFile方法与JUnit 如果可能的话使用模拟文件
  • Spring AspectJ 在双代理接口时失败:无法生成类的 CGLIB 子类

    我正在使用Spring的
  • 如何在 Spring 中禁用使用 @Component 注释创建 bean?

    我的项目中有一些用于重构逻辑的通用接口 它看起来大约是这样的 public interface RefactorAwareEntryPoint default boolean doRefactor if EventLogService wa
  • jQuery AJAX 调用 Java 方法

    使用 jQuery AJAX 我们可以调用特定的 JAVA 方法 例如从 Action 类 该 Java 方法返回的数据将用于填充一些 HTML 代码 请告诉我是否可以使用 jQuery 轻松完成此操作 就像在 DWR 中一样 此外 对于
  • Java 集合的并集或交集

    建立并集或交集的最简单方法是什么Set在 Java 中 我见过这个简单问题的一些奇怪的解决方案 例如手动迭代这两个集合 最简单的单行解决方案是这样的 set1 addAll set2 Union set1 retainAll set2 In
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • java.lang.IllegalStateException:提交响应后无法调用 sendRedirect()

    这两天我一直在尝试找出问题所在 我在这里读到我应该在代码中添加一个返回 我做到了 但我仍然得到 java lang IllegalStateException Cannot call sendRedirect after the respo
  • jdbc mysql loginTimeout 不起作用

    有人可以解释一下为什么下面的程序在 3 秒后超时 因为我将其设置为在 3 秒后超时 12秒 我特意关闭了mysql服务器来测试mysql服务器无法访问的这种场景 import java sql Connection import java
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • java for windows 中的文件图标叠加

    我正在尝试像 Tortoise SVN 或 Dropbox 一样在文件和文件夹上实现图标叠加 我在网上查了很多资料 但没有找到Java的解决方案 Can anyone help me with this 很抱歉确认您的担忧 但这无法在 Ja
  • 使用 AsyncTask 传递值

    我一直在努力解决这个问题 但我已经到了不知道该怎么办的地步 我想做的是使用一个类下载文件并将其解析为字符串 然后将该字符串发送到另一个类来解析 JSON 内容 所有部件都可以单独工作 并且我已经单独测试了所有部件 我只是不知道如何将值发送到
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 专门针对 JSP 的测试驱动开发

    在理解 TDD 到底是什么之前 我就已经开始编写测试驱动的代码了 在没有实现的情况下调用函数和类可以帮助我以更快 更有效的方式理解和构建我的应用程序 所以我非常习惯编写代码 gt 编译它 gt 看到它失败 gt 通过构建其实现来修复它的过程
  • Cucumber 0.4.3 (cuke4duke) 与 java + maven gem 问题

    我最近开始为 Cucumber 安装一个示例项目 并尝试使用 maven java 运行它 我遵循了这个指南 http www goodercode com wp using cucumber tests with maven and ja
  • 长轮询会冻结浏览器并阻止其他 ajax 请求

    我正在尝试在我的中实现长轮询Spring MVC Web 应用程序 http static springsource org spring docs 2 0 x reference mvc html但在 4 5 个连续 AJAX 请求后它会
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • 双枢轴快速排序和快速排序有什么区别?

    我以前从未见过双枢轴快速排序 是快速排序的升级版吗 双枢轴快速排序和快速排序有什么区别 我在 Java 文档中找到了这个 排序算法是双枢轴快速排序 作者 弗拉基米尔 雅罗斯拉夫斯基 乔恩 本特利和约书亚 布洛赫 这个算法 在许多数据集上提供
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp

随机推荐

  • “_csv.writer”对象没有属性“write”

    我不确定这里出了什么问题 我有一个想要过滤的 csv 文件 我想删除以 开头的所有行以及第三列是字符串 chrM 的所有行 我基本上将我的代码设置为类似于这里的答案 类型错误 需要一个字符缓冲区对象 但我收到错误 import re imp
  • 为 NSNotificationCenter = Swift deinit() 调用 .removeObserver 的正确位置?

    我读过很多关于为 NSNotificationCenter 调用 removeObserver 的正确位置的建议 因为 viewDidUnload 不是一个选项 我只是想知道 Swift 中新的 deinit 是否是一个不错的选择 nick
  • 如何阅读 ex_intro 的定义?

    我正在阅读Mike Nahas 的 Coq 入门教程 其中说 ex intro 的参数是 谓词 证人 与证人一起提出的谓词的证明 我在看定义 Inductive ex A Type P A gt Prop Prop ex intro for
  • Pandas 群体中的独特价值

    我有一个数据框 需要对其进行分组 然后进行分组 我需要从子组中返回子组是什么以及列的唯一值 df pandas DataFrame country pandas Series US Canada US US gender pandas Se
  • 使用 MongoDB 的简单投票系统

    快速问题我在 mongodb 中有一个文章列表 我希望用户能够对文章投赞成票或反对票 我的第一种方法是在文章集中有两行 分别称为 赞成票 和 反对票 它们的数字如下 点赞数 360 否决票 102 那么我需要通过求和来订购 赞成票 反对票这
  • JSON 中可以使用注释吗?

    我可以在 a 中使用注释吗JSON文件 如果是这样 怎么办 No JSON 是纯数据的 如果您包含评论 那么它也必须是数据 您可以有一个名为的指定数据元素 comment 或其他内容 应被使用 JSON 数据的应用程序忽略 您可能最好在生成
  • 使用通用迭代器访问数组数组的元素

    Is it 未定义的行为在 C 中访问相邻数组中的元素 如以下代码所示 include
  • Shiny 的 tabsetPanel 未在多个选项卡中显示绘图

    我正在尝试使用多个tabPanel控制范围内的tabsetPanel in Shiny 假设我使用以下代码从一个选项卡开始 mainPanel tabsetPanel tabPanel Plot plotOutput distPlot 代码
  • 在 AWS ECR 上重新标记映像会创建新映像

    我在 AWS ECR 上有一个私有 Docker 存储库 我正在尝试按照此处的说明使用新标签来标记现有图像https docs aws amazon com AmazonECR latest userguide image retag ht
  • 如何在 testNG 报告中包含失败屏幕截图

    目前我正在通过这种方式截取测试失败的屏幕截图 AfterMethod alwaysRun true public void catchExceptions ITestResult result Calendar calendar Calen
  • 在 Mac OS X 上多态捕获 -fno-rtti 共享库中的异常

    我正在构建一个共享库f no rtti 在内部 这个库抛出std invalid argument并捕获std exception 但是catch从未输入子句 以下代码重现了该问题 g 4 2 Mac OS X 10 6 library c
  • 具有条件字段的骨干形式

    首先感谢各位大佬骨干形式谁制作了一个完美集成在backbone js框架中的工具 我正在使用backbone js 和backbone forms 插件 但我需要创建条件字段 假设我有以下表格 我想根据在中选择的值显示 或不显示 带有 th
  • Tabular.vim:如何对齐位于单词开头的两个不同分隔符的第一次出现?

    我已经安装了 Tabular 插件 只要不涉及复杂的正则表达式 它对我来说就非常有用 但我有这个清单 one abc rstuvw foo three defg bar four mn opq kludge hack twelve hijk
  • 如何在异步方法中启动未等待的后台任务?

    我正在努力思考如何执行某些操作very 在异步方法的世界中长时间运行的后台处理 使用来自的词汇斯蒂芬 克利里的博客 我有兴趣启动 委托任务 after await 执行 承诺任务 我想在承诺的值可用时立即返回该值 并让委托任务在后台继续进行
  • javascript 提升:首先提升什么——变量还是函数?

    最近我对 javascript 提升行为感到困惑 现在我陷入了困境 所以 有两个例子 var alpha alpha var beta beta f beta var f function f1 console log beta funct
  • MariaDB CURRENT_TIMESTAMP 默认值

    我正在尝试为用户注册设置一个数据库 并希望有一列包含注册日期 默认情况下应该是当前时间 我尝试运行这个查询 CREATE TABLE users
  • jasper报告中的书写方法?

    我正在创建一个 jasper 报告 我想编写一个方法 该方法接受整数并执行一些处理并返回一个字符串 我不知道如何在 jasper 报告中编写方法 可以写吗 任何人都可以帮助我吗这 我使用的是iReport3 6 0 示例代码
  • ActionModel 的未定义方法“on”

    我收到以下错误 NoMethodError in Users new Showing app views users form new haml where line 7 raised undefined method on for
  • 如何在不使用create_function的情况下重写示例?

    当查看 PHP 时创建函数它说 如果您使用 PHP 5 3 0 或更新版本匿名函数应该使用 我想重新创建相同的功能create function但使用anonymous function 我不知道如何做 或者我是否正确地接近它 本质上 我如
  • 如何使用 JUnit 测试 Java 中的抽象类?

    我是使用 JUnit 进行 Java 测试的新手 我必须使用 Java 并且我想使用单元测试 我的问题是 我有一个带有一些抽象方法的抽象类 但有些方法并不是抽象的 如何使用 JUnit 测试此类 示例代码 非常简单 abstract cla