一些开发点滴[java]
最近忙着做项目,折腾新电脑,玩game。。。今天补点作业
测试问题。
1. Service间相互有依赖,在单元测试时无法直接调用其它Service。
修改ServiceLocator, 允许setService(name,mockService). 这样就可以在测试时临时设定service为匿名内部mock类。被测代码在调用ServiceLocator.getService(name)时就取得了mockService.
2. 相关依赖对象不是调用getService出来的,是new出来的。
这种情况下可以用同名mock类覆盖原来的类定义,但是有两个缺点:1.mock类比较死板,不一定能适应不同测试。2.不能功能的代码混合在一个mock类里面,要依靠外部信息(环境等)才能测试,单元测试复杂化
我的想法是new出来的依赖对象一般不复杂,不要mock,尽量先对它们测试完成,可用,然后直接使用。
3. 代码覆盖率
这个考查参数很有趣,jtest可以帮助自动生成大部分测试代码,并且统计覆盖率结果(不知道怎样得到的)。100%覆盖率可以保证各部分代码都被执行到。想想以前很多运行bug都是没执行过的代码第一次执行造成的,所以强调这个参数还是很有必要的。不过。。。。可能要加班才能完成目标啊,太多测试代码了 :(
一些开发点滴[java]相关推荐
- eclipse java调用c 代码吗_linux下通过eclipse开发用java调用c程序的方法
linux下通过eclipse开发用java调用c程序的方法: 1.先建立好java工程并建立java文件如下: public class testso { static { ...
- 海康摄像头的二次开发(java)
海康摄像头的二次开发(java) 我第一次接触海康摄像头的二次开发的项目,一开始的时候摸不清套路,走了不少弯路,现在准备把我的一些经验留下来,让大家参考一下. 1.首先到海康的官网下载设备网络SDK: ...
- Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi
Android开发中java.lang.RuntimeException: Unable to start activity ComponentInfo{xxx}: java.lang.NullPoi ...
- idea java 代码混淆加密_使用 IntelliJ IDEA 开发一般 Java 应用程序时配置 Allatori 进行代码混淆...
使用 IntelliJ IDEA 开发一般 Java 应用程序时通过 Allatori 进行代码混淆非常容易配置,下面总结一下本人经验,介绍一下配置方法. 首先在 IDEA 的 Module 所在硬盘 ...
- java的应用程序开发_开发一个Java应用程序(1)
开发一个Java应用程序(1) App Engine上的Java Web应用程序通过Java Servlet标准接口与应用程序服务器交互.一个应用程序由一个或多个类组成,这些类都扩展自一个servle ...
- java开发可以转什么软件有哪些_转行开发软件Java编程必须会什么
原标题:转行开发软件Java编程必须会什么 要想开发软,Java编程必须会什么?最起码的就是逻辑思维要好,只要不是特别差就没有什么问题. 数学是相对比较能够体现出一个人的逻辑思维如何. 先想想自己以前 ...
- Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725
Atitit. 提升软件开发效率and 开发质量---java 实现dsl 4gl 的本质and 精髓 O725 1. DSL主要分为三类:外部DSL.内部DSL,以及语言工作台. 1 2. DSL ...
- java web删除文件_Web开发为了java端程序能删除文件的解决办法
Web开发为了java端程序能删除文件,必须在.../jre/lib/security/java.policy文件中添加以下两个中的任何一段代码进去. 注:必须是服务器的本地文件,局域网内的其他机器文 ...
- 开发 OpenAM Java 客户端
开发 OpenAM Java 客户端 在 Agent 安装完成之后,可以使用自带的 agentsample 应用登录.这里主要讲一下如何在 SSO 之后拿到 SSOToken,以及相关 Session ...
最新文章
- python全局变量有缩进吗_Python全局变量和局部变量的问题 400 请求报错 -问答-阿里云开发者社区-阿里云...
- python enumerate 行号 序号
- 什么是MyCat?为什么要用到MyCat呢?
- ArcEngine判断要素(feature)是否为multipart feature及分解(炸开)代码
- linux 自动安装mysql数据库_Linux安装MySql数据库
- BZOJ 1087状态压缩DP
- Qt工作笔记-对主事件循环的进一步认识
- Ember.js 入门指南——路由重定向
- HelloDjango 第 04 篇:Django 迁移、操作数据库
- latex 目录层次设置
- php递归函数及简单实例讲解
- OpenPose 参数说明
- 阵列卡直通模式和raid模式_Dell R730服务器通过RAID在线扩容方法详解
- 图解3GPP规范文档组织结构与编号规则
- 机器学习选择 Python 还是 R 语言?要不直接用 SQL 吧!
- LeetCode 372. 超级次方(递归)
- 美国国家安全局(NSA)网络攻击主战武器“验证器”
- 大数据分析实战之异构数据源联合分析业务创新实践
- C++精确到小数点后两位取值
- sbc8600_还记得我复制的价值8600万美元的车牌扫描仪吗? 我抓住了它。