写点什么

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

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

关注

评论

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

iPaaS 如何帮助 CIO 减少 50% 的集成成本?

谷云科技RestCloud

数字化转型 集成平台 ipaas

6 个替代 Jira 的开源项目管理工具推荐

NocoBase

GitHub 开源 项目管理 Jira 项目管理系统

鸿蒙应用开发从入门到实战(一):鸿蒙应用开发概述

程序员潘Sir

鸿蒙 HarmonyOS

KubeBlocks for Kafka

小猿姐

kafka 云原生 k8s kubernete

网络安全防线:黑龙江等级保护测评标准详解

等保测评

【海南科技职业大学主办】第三届物联网与云计算技术国际学术会议(IoTCCT 2025)

搞科研的小刘

物联网与云计算 国际学术会议 中国海口市

面试官:如何实现动态线程池的任务编排?

王磊

qData 数据中台开源版部署全攻略:三种方式任你选择

千桐科技

大数据平台 qData 开源数据中台 Java数据中台 企业级数据中台

低代码如何帮助创业者从“0”到“1”

引迈信息

自控学习历程系列 自控维护经验总结(18)

万里无云万里天

工厂运维

从AI生产实践谈A2A原理与意义

小奇同学

智能体 MCP A2A

flyway报错Caused by: java.lang.NoSuchMethodError: org.flywaydb.core.api.configuration.FluentConfigurat

刘大猫

人工智能 算法 数据分析 智慧城市 智慧交通

黑龙江等保测评:核心流程与实施要点解析

等保测评

浅谈 LLM 推理基准测试

YC Cheng

benchmark 推理 LLM LLM推理

亿值旺的全球化战略:以创新链接世界

科技热闻

多模态大模型Keye-VL-1.5发布!视频理解能力更强!

快手技术

多模态 大模型 快手 keye

关于nano banana模型实践的思考

伤感汤姆布利柏

透明LED显示屏:零售橱窗黑科技

Dylan

广告 LED显示屏 户外LED显示屏 led显示屏厂家 户内led显示屏

一客一策:Data Agent 如何重构大模型时代的智能营销?

字节跳动数据平台

大数据 营销 agent 智能营销

ADManager Plus使用案例:企业AD域管理场景痛点与解决方案

运维有小邓

AD域 AD域管理

Active Directory 迁移分步指南

运维有小邓

AD域管理 AD域迁移

自控学习历程系列 自控维护经验总结(17)

万里无云万里天

工厂运维

Plaud唤醒了沉睡的智能纪要市场

脑极体

AI

黑龙江等保流程全解析:企业信息安全的必由之路

等保测评

大数据-92 Spark 深入解析 Spark Standalone 模式:组件构成、提交流程与性能优化

武子康

Java 大数据 flink spark 分布式

零代码集成真的靠谱吗?ETL平台的背后技术揭秘

谷云科技RestCloud

零代码 数据处理 数据同步 ETL 数据集成平台

TitanIDE:构建企业级云端代码安全管理体系

行云创新

代码安全 源代码安全 代码安全管理

除了Manus,还有哪些好用的AI Agent智能体工具?

职场工具箱

人工智能 AI 在线白板 agent AI智能体

实测豆包P图4.0!一句话做3D手办视频、全套设计…我把修图软件都封印了!

阿星AI工作室

产品 AI 工具 大模型 豆包

30条顶级APT与蓝队攻防单行命令:网络战场终极对决

qife122

网络安全 入侵检测

烟草行政处罚案卷制作与评查平台上线|新技术、新产品、新模式、新服务

中烟创新

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