怎么测试abstract class
关于对abstract class需不需要一个单独的unit test,业界有很多争论。
https://stackoverflow.com/questions/7569444/how-to-test-abstract-class-in-java-with-junit
不支持立场的观点是abstract不能被实例化,如果被实例化的话,那么一定有实现类,所以测实现类的时候,顺便就会测到abstract class的逻辑。
支持立场的观点是就算abstract不能被实例化,但是我有一些逻辑在abstract class,我不用等到具体的实现类去测试它,我可以自己去测试。
不管争论是什么,需不需要,我们暂且不讨论。这里说一下如果我们真有一些abstract class,里有一些method是有一些逻辑的,我们又想测试怎么办。大概思路有两个:
1 自己写一个subclass wrapper来进行测试。
2 用partial mock
AbstractService s = Mockito.mock(AbstractService.class,Mockito.CALLS_REAL_METHODS);
然后用s进行测试,如果里边有一些调用了abstract method,那么你可以stub它:
Mockito.when(service.getContactType()).thenReturn(AbstractService.ContactType.email);
原文:http://blog.csdn.net/hongchangfirst/article/details/80996528
hongchangfirst的主页:http://blog.csdn.net/hongchangfirst
怎么测试abstract class相关推荐
- Vue面试题 70道题目及答案
Vue面试题 Vue.js介绍 Vue.js是一个轻巧.高性能.可组件化的MVVM库,同时拥有非常容易上手的API Vue.js是一个构建数据驱动的Web界面的库. Vue.js是一套构建用户界面的 ...
- thinking-in-java(21)并发2
think-in-java 并发前半部分(并发1)参见: https://blog.csdn.net/PacosonSWJTU/article/details/104855730 [21.4.3]中 ...
- think-in-java(21)并发
[README] 并发后半部分(并发2,从21.4.3中断开始)参见: https://blog.csdn.net/PacosonSWJTU/article/details/106878087 ; 本 ...
- android 系统 ---(1) 框架的代码组织介绍
1.Android系统的层次如下: 2.项目目录简单分析如下: 3.telphony目录 文件 描述 CellIdentityCdma //描述电信通信标识 CellIdentityGsm 描述移动通 ...
- 抽象类及继承(本科生和研究生类)
应用抽象类及继承编写程序.输出本科生及研究生的成绩等级.要求:首先设计抽象类student,它包含学生的一些基本信息,包括:姓名.学生类型.三门课程的成绩和成绩的等级等:其次,设计student类的两 ...
- Android Framework 记录之一
描述 class BadXmlException extends SAXParseException xml解析错误 Children 子集 Element 一个元素 interface Elemen ...
- 基于PLC的烟草真空回潮控制系统设计
目 录 摘 要 Abstract 第1章 绪论 1.1课题研究的目的及意义 1.2国内外研究现状 1.2.1国外研究现状 1.2.2国内研究现状 1.3本文研究内容 1.4课题研究的结构安排 1. ...
- JavaDay13 抽象类 、接口、多态
tags : java基础 flag: blue @toc JavaDay13 抽象类 .接口.多态 一. abstract 抽象类 [需求] 要求继承于该类的子类,[强制]重写这些技能方法,不写就报 ...
- 陷波滤波器消除周期噪声python_车载功放本底噪声的机理及对策 wdele
摘要:本文简要的介绍了车载功放系统噪声机理,对车载功放在实车测试中产生的噪声问题加以分析说明,并提出改善方案. [关键词]车载功放:噪声:噪声源:噪声测试 Abstract: This paper i ...
最新文章
- 华为热设计工程师待遇_华为给985毕业生开2万元的工资,是侮辱价?还是不自量力?...
- 中科院詹剑锋:美国出口管控对中国开源软件及产业的影响。
- 计算机软件员证书用途,软考证书的五大好处(详解)
- Python+Opencv实现无参数、全自动的Canny算法
- Android2.2缩略图类ThumbnailUtils
- python标志变量_Python 中的 global 标识对变量作用域的影响
- Javascript 调用百度地图不显示
- 第四:Pytest框架之命令行参数(二)
- FreeRTOS内核实现06:任务延时列表
- mysql行锁表怎么办_mysql - 表锁,行锁
- 关于今日头条小程序(字节跳动小程序)相关问题
- JVM 新生代,老年代,永久代
- share 接口的使用
- 计算机体系结构课后答案
- 2018年泰迪杯数据挖掘比赛c题
- 【定位】纯激光导航定位丢失/漂移问题的优化方案及思考
- 短距离的无线连接技术--蓝牙
- 安卓手机加密_安卓手机的万能加密插件 oversec
- Oracle-数据库所有查询命令
- 机房收费系统_刷卡充值功能的实现