一个好的测试是什么
来源:互联网 发布:apache ab 带参数 编辑:程序博客网 时间:2024/04/28 06:01
作者:Andrew Trenk
原文链接:
http://googletesting.blogspot.tw/2014/03/testing-on-toilet-what-makes-good-test.html
单元测试是验证我们的代码是否正确的重要工具,但是编写一个好的测试不仅仅是为了验证正确性--- 一个好的单元测试应该体现其他更多的特性来确保可读性和可维护性。
一个好的测试的特性就是清晰。清晰意味着:测试代码是能够作为人类可读的文档,并根据他们的公共API来描述被测试的代码。测试不能直接参考这些来实现细节。类的名字的必须说明这个类实现的所有方法。测试人员自己必须提供怎么使用这些类的例子。
还有两个更重要的属性就是完整性和简洁。当一个测试包含了所有你需要了解的信息,这个测试是完整的,当它不包含其他不重要的信息就是简洁。这种测试代码在两种计数上有缺失:
@Testpublic void shouldPerformAddition() {
Calculator calculator = newCalculator(new RoundingStrategy(),
"unused", ENABLE_COSIN_FEATURE, 0.01, calculusEngine,false);
intresult = calculator.doComputation(makeTestComputation());
assertEquals(5, result); //这个数字是从哪里来的?
}
大量分散的信息被传递到构造函数中,重要的部分被隐藏在一个辅助的方法里。这个测试代码可以通过澄清helper方法的目的来变得更加完整,也可以通过使用其他的helper来隐藏构造计算器时不相干的细节来达到简洁的目的:
@Test publicvoidshouldPerformAddition() {
Calculator calculator = newCalculator();
intresult = calculator.doComputation(makeAdditionComputation(2, 3));
assertEquals(5, result);
}
一个好的测试的最后一种属性就是弹性。之前写过,除非被测试的类的目的和状态改变了,否则一个弹性测试不需要被改变。添加新的方法仅仅需要添加新的测试代码,无需改变原来的代码。原始的测试不是弹性的基于你必须更新它(可能几十个其他测试!)不管你是否添加新的构造函数的参数。将这个细节移到辅助方法中会解决这个问题。
- 一个好的测试是什么
- 什么是一个好的“测试”
- 好的软件测试人员简历是什么样子的?
- 发现一个关于测试的好blog
- 一个学习测试的好站点
- 测试工程师一个好的习惯
- 一个好的RTSP测试源
- 一个好用的测试工具tsung
- 测试的核心技术是什么?
- 测试的核心技术是什么?
- 测试的核心技术是什么?
- 测试的核心技术是什么?
- 测试的核心技术是什么?
- 测试的核心技术是什么?
- 测试的核心技术是什么?
- 测试的核心技术是什么?
- 测试的核心技术是什么?
- 测试的核心技术是什么?
- python 参数合法性验证实例
- 第十二章采购管理
- Android开发笔记之:Handler Runnable与Thread的区别详解
- 《转》由 Python 實現的靜態網頁產生工具- jemdoc
- 学习笔记 Tianmao 篇 OkHttp 网络的使用的简单封装 获取Json用GSON来解析
- 一个好的测试是什么
- [新手必读] MySql语句大全:创建、授权、查询、修改等
- JVM调优总结 -Xms -Xmx -Xmn -Xss
- 转载张戈博客的js雪花特效
- 认识你的测试替身
- android开发:动画-属性动画
- C++ 多重继承 虚拟继承的使用
- 深入浅出Android中的MVP模式
- CSS3 perspective属性