写点什么

访谈:新一代 Java 测试:TestNG 和高阶理念

  • 2008-03-07
  • 本文字数:760 字

    阅读完需:约 2 分钟

InfoQ.com 最近采访了新一代Java 测试:TestNG 和高阶理念的作者Hani Suleiman 和Cédric Beust,就针对这本书和他们对测试的总体看法进行了讨论。InfoQ 很荣幸在这里给大家提供该书第二章的节选,“Mocks 和Stubs”。

Cédric Beust 谈到如何令代码变得更加可测试时,说道:

  • 避免静态。非常不幸,由于存在很多难测的代码,使 singleton 和近似的模式把静态变得相当受欢迎。解决这个问题的一个方法是使用依赖注射框架(Hani 和我就很推崇 Guice,我们在书中有提到,但 Spring 也是一个很好的选择)。
  • 别再对“修改代码使之更易测试”而犹豫不决。如果这个修改意味着要将 private 函数改成 protected 或者 public,这常常是个可行的好主意。因为“激活自动测试能力”所得到的收益,往往要比“将函数变得更可见带来的潜在维护成本”要大得多。
  • 接口并没有像很多人希望你所相信得那样糟糕。很多 XP 开发员会跟你说不要引入任何接口,除非你确定至少会有两个类来实现该接口,但我们的处境是每个具体类潜在由两种不同的方式使用:产品中或者测试中。抽取出接口常常是使得你的代码更干净利落更易测试的举动。

Hani Suleiman 还提到,数据库测试是较难测试的内容之一。

的确,有很多工具能够帮助你完成数据库测试,也有很多的技术能够帮助你简化一些相关难题,但我尚未听说有一套好的解决方案,用于为迁移数据而编写测试。如果你根据一组静态数据写测试的话,那么你就会逐渐与真正运行中数据库背道而驰。如果你使用运行中的备份数据的话,那你就不得不处理安全因素,而且你必须确信你没有将敏感数据暴露给开发人员。在银行业,产品世界更是和开发有着严重的屏蔽。所以在保证数据库测试普遍有用性且能与自动测试并发,是需要很多技巧的。

查看文章全文:访谈及书摘:Hani Suleiman 和 Cedric Beust,《新一代Java 测试: TestNG 和高阶理念》 ****

2008-03-07 07:06997
用户头像

发布了 100 篇内容, 共 22.2 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

Vue项目起步

JackWangGeek

Vue

6种快速统计代码执行时间的方法

Bruce Duan

java统计时间 currentTimeMillis nanoTime StopWatch

微服务框架-模块需求篇

superman

2.3.2 JDK动态代理 -《SSM深入解析与项目实战》

谙忆

芯片破壁者(十二.下):青瓦台魔咒与半导体“死亡谷”

脑极体

Flink 中的应用部署:当前状态与新应用模式

Apache Flink

flink

Swagger 这一个文章就够了

陈磊@Criss

【写作群星榜】8.1~8.14 写作平台优秀作者 & 文章排名

InfoQ写作社区官方

写作平台 排行榜 热门活动

中本聪原始比特币论文解读:点对点的电子现金系统

韩超

比特币 区块链

重磅消息,我国数字人民币将在京津冀等具备条件地区试点

CECBC

数字货币 货币

微博基于 Flink 的机器学习实践

Apache Flink

flink

Facebook开源的数据Mock:Memisis详解

陈磊@Criss

LeetCode题解:88. 合并两个有序数组,splice合并数组+sort排序,JavaScript,详细注释

Lee Chen

大前端 LeetCode

为什么会是Docker?

架构精进之路

Docker

[修复 Webpack 官方 Bug] 提取CSS时的依赖图修正

分一

大前端 webpack 编译优化 源码刨析

Django的Models更新时,不触发Signals解决办法

BigYoung

django singals 信号机制 update 更新

源码分析 | 咋嘞?你的IDEA过期了吧!加个Jar包就破解了,为什么?

小傅哥

Java 字节码插桩 asm bytebuddy

从实际案例讲 Deno 的应用场景

keelii

Java typescript deno

Windows AD 保姆级配置NTP服务器教程

BigYoung

时间 AD ntp Windows Server 2012 R2

手撕二分查找及其变种,就是干!

我是程序员小贱

Maven的爱恨情仇

xcbeyond

Java maven

Junit执行单元测试用例成功,mvn test却失败的问题和解决方法

陈磊@Criss

NetPerf揭示容器间是高速路还是林荫小路

陈磊@Criss

用Ant实现Java项目的自动构建和部署

陈磊@Criss

实用心理学—没用你打我!

代码制造者

职场 职场搞笑 信息技术 人工

2.3.1 理解动态代理 -《SSM深入解析与项目实战》

谙忆

从北京降雨的复盘中,我发现了企业SD-WAN网络的秘密

脑极体

统一软件开发过程(RUP)的概念和方法

雯雯写代码

微服务框架 - 模块功能设计篇

superman

图解23种设计模式——前方高能,前端切图仔请务必抓好方向盘

执鸢者

typescript 大前端 设计模式

Serverless:为我们到底带来了什么

刘宇

Serverless 云原生

访谈:新一代Java测试:TestNG和高阶理念_Java_乔梁_InfoQ精选文章