写点什么

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

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

关注

评论

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

多种类型的思维导图 Simplemind pro for Mac v2.4.0中文激活版

Rose

网络的下一次迭代:AVS 将为 Web2 带去 Web3 的信任机制

TechubNews

文献解读-农业系列-第八期|《有害突变在多倍体棉花中积累速度快于二倍体棉花,且在亚基因组间不平衡》

INSVAST

基因数据分析 生信服务

一文带你搞清楚Python的多线程和多进程

华为云开发者联盟

Python 华为云 华为云开发者联盟 企业号2024年6月PK榜

从源码分析 vllm + Ray 的分布式推理流程

阿里技术

通过搭建 24 点小游戏应用实战,带你了解 AppBuilder 的技术原理

Baidu AICLOUD

大模型 AI 原生云 AI原生应用 AppBuilder

Microsoft Office LTSC 2021 v16.86最新许可证版 office2021mac资源

Rose

JetBrains WebStorm 2024激活码永久使用 JavaScript开发工具

Rose

项目管理软件ClickUp - 使用技巧分享 | 5款替代软件推荐!

彭宏豪95

效率 项目管理 职场 在线白板 办公软件

【论文速读】|当LLM遇见网络安全:系统性文献综述

云起无垠

网络安全 大语言模型

突破瓶颈:如何优化 LLMs 的落地成本和延迟

Baihai IDP

程序员 AI LLMs 企业号 6 月 PK 榜 Agents

Databend 开源周报第 148 期

Databend

为什么我的项目Debug运行没问题,编译成Release包就报错?

京东科技开发者

电商商品数据采集的智能化:淘宝/天猫商品详情API接口的AI应用

技术冰糖葫芦

API Explorer API 接口 API 策略 pinduoduo API

数字化供应链平台:优化运营、驱动创新的未来之路

天津汇柏科技有限公司

数字化转型 供应链

软件测试学习笔记丨Python 基本数据类型

测试人

软件测试

AIGC系统中聊天小助手卡片小组件嵌套设计实践

京东科技开发者

实时数仓Hologres V2.2发布,Serverless Computing降本20%

阿里云大数据AI技术

大数据 阿里云 实时数仓 hologres

深度解读数据库引入LLVM技术后如何提升性能

华为云开发者联盟

数据库 华为云 华为云GaussDB 华为云开发者联盟 企业号2024年6月PK榜

视频如何转换为mp3格式?4K YouTube to MP3 for Mac(在线视频转Mp3软件)中文版

Rose

科普:嵌入式代码软件在环(SiL)测试的可靠性

DevOps和数字孪生

嵌入式 SiL

NFTScan 正式上线 Sei NFTScan 浏览器和 NFT API 数据服务

NFT Research

NFT NFT\ NFTScan

深度剖析集团型企业在新质生产力和数字化转型过程中面临的身份管理问题(四)

芯盾时代

iam 统一身份认证 身份和访问管理 统一身份管理平台

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