写点什么

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

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

关注

评论

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

常见 git 需求整理(持续更新中)

blueju

git 大前端 工具 npm

正则表达式.05 - 匹配模式

insight

正则表达式 3月日更

波场环球系统开发|波场环球软件APP开发

系统开发

DDR4看这一篇就够了

Kevin Z

成为你向往的那只独角兽 - 《独角兽项目》出版在即

京东科技开发者

DevOps

寻找被遗忘的勇气(十)

Changing Lin

3月日更

RabbitMQ集群简介

Kylin

读书笔记 RabbitMQ 消息队列 3月日更 集群简介

B端产品经理自我认知

lenka

3月日更

熬夜重构了IDEA插件Toolkit(整合程序员常用的工具箱),更加便捷

Silently9527

Java 程序员 idea插件

垃圾代码和优质代码的区别?

xcbeyond

Java 优化代码 3月日更

手写的第一个 Java 应用程序,执行的时候发生了什么?

白色蜗牛

Java

redis工作原理(下)

Sakura

28天写作 3月日更 21天挑战

翻云覆雨——前景理论之隔离效应

Justin

心理学 28天写作 游戏设计

二十张图让你一分钟全面学习数仓建设之路

初学大数据

大数据 数据仓库

Webpack 基石 tapable 揭秘

vivo互联网技术

大前端 webpack 流程管理 tapable

Markdown中的图标为什么不是图片却可以以图片方式显示

happlyfox

28天写作 3月日更

Elasticsearch 定制 Dynamic Mapping 策略

escray

elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

Python 关键字

HoneyMoose

Spring Boot工程结构

韩斌

Spring Boot

(28DW-S8-Day18) 可插拔式知识

mtfelix

28天写作

一个PHPer的Golang之路

万俊峰Kevin

php 微服务 Go 语言

第9周课后练习-性能优化三

潘涛

架构师训练营 4 期

区块链赋能农产品溯源,农产品质量安全追溯

13530558032

智慧组工党建系统-数字赋能组织工作

13530558032

容器 & 服务:Kubernetes构件及Deployment操作

程序员架构进阶

Docker Kubernetes 容器 28天写作 3月日更

RPA助力证券行业高质量发展

Jason Tien

微服务 RPA 金融科技 证券 自动化平台

《精通比特币》学习笔记(第六章)

棉花糖

区块链 学习 3月日更

密码学系列之:内容嗅探

程序那些事

加密解密 密码学 程序那些事 内容嗅探

带你轻松理解数据结构之Map

蛙人

JavaScript 大前端

算法攻关 - 重建二叉树 (O(n))_0105

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关 重建二叉树

CloudQuery v1.3.4 版本更新

BinTools图尔兹

oracle 运维 编辑器 sql 数据库管理工具

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