写点什么

访谈:新一代 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:061399
用户头像

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

关注

评论

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

顶级的计算机科学家是如何养成的?

博文视点Broadview

react源码中的协调与调度

flyzz177

React

2022年中国消费金融行业数字化技术创新分析

易观分析

消费金融

前端开发培训学习那不难,怎么选择机构

小谷哥

大数据培训学习应该储备什么知识

小谷哥

户外LED电子显示屏市场会走向哪

Dylan

LED LED显示屏 户外LED显示屏

多线程、多进程同时操作MMAP,会怎么样?

C++后台开发

多线程 后端开发 多进程 linux开发 C++开发

每日一题之Vue的异步更新实现原理是怎样的?

bb_xiaxia1998

Vue

【IT运维小知识】如何通俗理解节点、集群以及主从?

行云管家

高可用 高可用HA

云原生安全系列 1:零信任安全和软件开发生命周期

HummerCloud

云原生 安全 云原生安全 安全软件开发生命周期 10月月更

负载均衡

Andy

千锋1024程序员节锋企优联开启认证考试大咖直播,为学员开启认证学习秘籍

千锋IT教育

Wallys/QCN9074 11ax 4x4 MU-MIMO 2.4G M.2 /2.4GHz, max 23dBm per chain, up to 1147Mbps //QCN9072/QCN9024

wallys-wifi6

IPQ6010 IPQ6000

等保备案和通信网络单元定级备案的五大区别讲解

行云管家

等保 等级保护 等保备案

2022创业邦100未来独角兽评选正式启动!

创业邦

程序培训哪里比较好,应该怎么去选择

小谷哥

react源码中的生命周期和事件系统

flyzz177

React

MySQL高级:explain分析SQL,索引失效&常见优化场景

程序员小毕

Java MySQL 数据库 后端 索引

新思科技推出适用于IntelliJ集成开发环境的Code Sight标准版解决方案

InfoQ_434670063458

软件开发 代码 新思科技

转行大数据培训怎么样

小谷哥

Groovy Swagger @requestBody 加载超时 一键搞定

FunTester

一面高频vue面试题

bb_xiaxia1998

Vue

专项贴息贷款加速投放 锋云智慧助力教育信息化乘风而上

千锋IT教育

阿里云PolarDB、RDS获评信通院数据库Serverless认证最高“先进级”

极客天地

CSP 直通车 | 在线直播认证培训双周末班 火热报名中

ShineScrum

敏捷教练 ScrumMaster认证 Scrum认证

如何在填报场景中使用数据绑定获取数据源

葡萄城技术团队

Nginx浅析

Andy

微信小程序浅践

Andy

前端培训适合零基础学习吗

小谷哥

【web 开发基础】PHP中的特殊流程控制(break) -PHP 快速入门 (20)

迷彩

break 10月月更 web开发基础 PHP基础

干货好文 | 初探MySQL迁移到ClickHouse

沃趣科技

MySQL Clickhouse

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