柠檬班java测试开发_好文翻译|写给精明 Java 开发者的顶级测试技巧

b0510e8f2977b2750fe8f323b69e1e9d.png

点击右上方,关注开源中国OSC头条号,获取最新技术资讯

参与翻译 (2人) : xiaoaiwhc1, LaingKe

我们经常为我们的业务代码写测试用例,对吧?毫无疑问,大多数答案会落在“不错,但是你知道怎样避免它么?”和“当然,我喜欢测试”之间的某种状态。这里我将介绍一些小窍门,让你明白写好测试用例也是如此简单。这也将帮助你写更少的碎片化的测试,以确保你的应用更加强壮。

同时,如果你的答案是“不,我从来不写测试”,那我也希望这些简单有效的技术让你看到写测试用例的好处,你也将会看到写出明确无价的测试集并不像你想的那样困难。

如何写测试用例和什么是管理测试套件的最好实践,如今是一个新的主题。

我们过去已经讨论了很多主题。从如何在编译流程中正确地使用集成测试,到如何在单元测试中模拟测试环境,再到代码覆盖率和如何找出实际需要测试的代码等。

今天,我想给你一些新的思路,教你如何从低级到高级构建测试蓝图,组织测试的心理画像。从如何构造一个简单的单元测试用例,到更高层级的工具的应用等。比如: 你会明白模拟(mock)、侦测(spy)和复制粘贴测试代码(copy-pasting 这里估计是指代码复用)等。让我们开始吧!

AAArrr, 听起来就像是海盗,对吧~~~

在大量的软件开发中,找到合适的设计模式来采用会是一个好的开端。你是否想通过工厂创建对象?亦或者是否需要把你的web应用分为模型,视图和控制器等模块?在这背后经常会有一种模式帮助你实现你的想法。那么,一个典型的测试模式应该看起来是什么样的呢?

在写测试代码时,一个最有效,也最简单的模式是“准备(Arrange)---动作(Act)---断言(Assert)”模型,也叫做 AAA.

这个模型的前提是:所有的测试应该遵循这个默认布局。被测系统的所有预置条件和输入应该在测试一开始就安排好。等所有前置条件确定后,我们就可以针对被测系统执行动作(Act)了, 比如执行一个方法或检查一些系统状态。最后,我们还需要对被测系统产生的结果进行检查(Assert)

让我们看一个Java JUnit中使用该模式的测试用例:

 @Test public void testAddition() {  // Arrange Calculator calculator = new Calculator();  // Act int result = calculator.add(1, 2);  // Assert assertEquals("Calculator.add returns invalid result
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值