大咖直播-鸿蒙原生开发与智能提效实战!>>> 了解详情
写点什么

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

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

关注

评论

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

函数计算 × MSE Nacos : 轻松托管你的 MCP Server

阿里巴巴云原生

阿里云 云原生 函数计算 MSE

暴露的Docker守护程序助长DDoS僵尸网络

qife122

容器安全 Docker安全

营销费用管理重要性跃居新高度,掌舵者必须重塑管理体系、升级思维模式

赛博威科技

人工智能 营销费用管理 赛博威

当能耗监控变 “游戏”:MyEMS 可视化看板如何让员工主动参与节能?

开源能源管理系统

开源 能源管理系统

救命!没写过一行代码,老板让我一周出小程序

微擎应用市场

流量突然提升100倍QPS,怎么办?

测试人

当游戏NPC有了“灵魂”,网易伏羲解码游戏智能交互场景新实践

网易伏羲

网易伏羲 游戏AI 逆水寒手游 新倩女幽魂

老建筑的 “能源焕新”:MyEMS 破解既有建筑改造中 “能耗难计量” 痛点

开源能源管理系统

开源 开源能源管理系统

人效评估管理系统

深圳亥时科技

金属之躯,AI之心:萤石智能锁如何卷出新高度

脑极体

AI

2025 云栖精选资料:《从云原生到 AI 原生核心技术与最佳实践》PPT 免费下载

阿里巴巴云原生

阿里云 云原生 云栖大会

持续规划与智能财务的完整指南

智达方通

全面预算 财务管理 预算管理

2025 年 9 月《大模型 SQL 能力排行榜》发布

爱可生开源社区

sql LLM

程序员的画图方式

天翼云开发者社区

CDN

企业如何选择私有化部署的即时通讯(IM)系统?

BeeWorks

即时通讯 IM 私有化部署

DeepSeek-V3.2的DSA稀疏注意力技术:在TPU平台上的效能革命与适配实践

中昊芯英

人工智能 tensorflow TPU 大语言模型 DSA

事件驱动重塑 AI 数据链路:阿里云 EventBridge 发布 AI ETL 新范式

阿里巴巴云原生

阿里云 云原生 EventBridge

【隐语SecretFLow隐私计算】纵向联邦算法 SecureBoost Benchmark——SGB性能测试报告

隐语SecretFlow

算法 联邦学习 隐私计算 可信隐私计算评测

电商小程序开发,打通物流端的终极大招之API接口

快递鸟

不止节能,更能 “生钱”:MyEMS 辅助企业参与电力现货市场的实操案例

开源能源管理系统

开源 能源管理系统

Playwright MCP入门指南:从零开始构建自动化测试

测吧(北京)科技有限公司

思科SRv6 实现 VPN+流量工程测试

天翼云开发者社区

网络

为 AI / LLM / Agent 构建安全基础 ——打造可信、可控、可持续的智能生态体系

知孤云出岫

弟弟想看恐龙,用文心快码3.5S快速打造恐龙乐园

Comate编码助手

AI 编程 文心快码3.5S AI编程助手

AI 大模型知识管理平台:让企业知识“活”起来

上海拔俗

如何通过内核版本检查判断FreeBSD是否需要重启

qife122

freebsd 内核更新

喜报!网易灵动荣获2025全球数贸创新大赛机器人赛道金奖

网易伏羲

智慧矿山 网易伏羲 工程机械 网易灵动

提升AD管理效率:权限委派的两次进化

运维有小邓

AD域管理

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