NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

区块链电子合同铸就数字经济信任基石

CECBC

电子合同

物联网目前的安全问题有哪些?

IoT云工坊

LTN挖矿系统开发

Geek_a620db

Seata-AT 如何保证分布式事务一致性

阿里巴巴云原生

云计算 开源 分布式 微服务 云原生

Dubbo 3.0 前瞻系列:服务发现支持百万集群,带来可伸缩微服务架构

阿里巴巴云原生

开源 微服务 云原生 dubbo 中间件

阿里云仓库使用小技巧

Java maven

道高一丈,且看CWE4.2的新特性

华为云开发者联盟

技术 安全 漏洞

为什么线程安全的List推荐使用CopyOnWriteArrayList,而不是Vector

Java旅途

Java List 线程安全 vector

高速增长的跨境电商业务背后,区块链应用场景来了吗?

CECBC

跨境电商

如何基于SDK快速开发一款IoT App控制智能灯泡(Android版)

IoT云工坊

android App 物联网 API sdk

联联周边游系统源码

Geek_a620db

架构师训练营大作业 (二)

木头发芽

搜狗开源框架发布纯自研C++ Kafka客户端

你真的会学习吗?从结构化思维说起

阿里巴巴云原生

云原生 技术人 自我思考 职场成长 成长笔记

vivo 全球商城:订单中心架构设计与实践

vivo互联网技术

分库分表 服务器 架构设计

HBC环保卫士系统搭建

Geek_a620db

译|Optimal Logging

cyningsun

监控 日志 异常 故障 错误

阿里云开源项目 OAM 负责人张磊入选「中国开源先锋 33 人」

阿里巴巴云原生

开源 开发者 云原生 k8s cncf

2020年物联网行业有哪些新趋势

IoT云工坊

架构师训练营大作业(一)

木头发芽

PiNetwork 挖矿算力系统开发

Geek_a620db

批量作业调度工具Taskctl Web应用版/ETL免费调度工具/数据挖掘,抽取,转换工具

TASKCTL

数据挖掘 大数据 kettle 运维自动化 海豚调度

盘点2020 | 作为技术号主的一年!

小傅哥

Java 小傅哥 盘点2020 技术成长 2021年度技术盘点与展望

vivo 互联网业务就近路由技术实战

vivo互联网技术

中间件 服务器 分布式路由

企业使用云计算低效益怎么办?区块链或成良药

CECBC

云计算

从根上理解高性能、高并发(二):深入操作系统,理解I/O与零拷贝技术

JackJiang

网络编程 高并发 高性能 即时通讯

多币种钱包app系统开发,数字货币交易所系统源码开发

7年Java开发经验,面试20多家公司,砍下16个Offer,总结干货面试题!

Java架构追梦

Java 架构 面试 大厂

漏洞扫描软件AWVS的介绍和使用

行者AI

安全 漏洞

大作业2

龙卷风

架构师一期

STARFIELD星域APP系统开发|STARFIELD星域软件开发

系统开发

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