单元测试普及(一):以前的测试方式
作者:网络转载 发布时间:[ 2012/9/29 14:44:22 ] 推荐标签:
当然,我相信你一定会对自己的代码进行测试。没有人会在写完一大片代码之后,不经过运行放到线上产品中。我的这篇文章主要还是想强调一下如何做测试。如果你并没能做到自动化测试,那么请你准备接受一次提高生产力和信心的洗礼。
提醒:我会在本文中提到单元测试和TDD。如果你已经对这些内容有所了解,那么你可以跳过下面这几条学习测试的理由而直接阅读后面部分,或者至少阅读结尾部分“你需要注意的理由”。
● “我使用了类似jQuery这样的框架,这样已经能够确保我的代码工作正常。”
● “测试对于那些支持者而言是高级实践,但对于我来说不是”
● “测试需要花费太多时间,我更愿意为产品编写代码”
不同的目的对应不同的测试
测试包含了太多的内容,测试的方式也取决于你进行测试的目的。下面有几种测试方式,你可能会在你的应用中使用:
● 可用性测试
● 性能测试
● 稳定性性/回归测试
在本文中,我们会专注于稳定性和回归测试。换句话说,这类测试可以确保你的代码执行正确,并且不包含bug。在大部分情况下,没有bug是不可能的。我们可以做的是采取一些有效措施来减少bug的数量,并且阻止老Bug的复现。
你是如何寻找bug的?
程序员通常都需要应付程序的验收和bug的修复。在过去,这样的任务差不多都是通过调用alert然后刷新浏览器来检查变量的值,或者观察脚本的执行是否和期望的一致。
现在,大部分浏览器内置一个强大的控制台工具。对于那些没有内置控制台的浏览器,你也可以使用含有类似功能的Firebug Lite。调试过程基本类似:在代码中调用console.log,刷新浏览器来观察结果是否和期望的一致。
调试:一个例子
这里有一个调试用例,一个jQuery插件,用于将一个含有datetime属性(HTML5中的time元素)或者含有自定义属性data-datetime属性的元素中的innerHTML改为更容易人们阅读的字符串(比如:“3 hours ago”)。
jQuery.fn.differenceInWords = (function () {
var units = {
second: 1000,
minute: 1000 * 60,
hour: 1000 * 60 * 60,
day: 1000 * 60 * 60 * 24,
week: 1000 * 60 * 60 * 24 * 7,
month: 1000 * 60 * 60 * 24 * 30
};
function format(num, type) {
return num + " " + type + (num > 1 ? "s" : "");
}
return function () {
this.each(function () {
var datetime = this.getAttribute("datetime") ||
this.getAttribute("data-datetime");
var diff = new Date(datetime) - new Date();
if (diff > units.month) {
this.innerHTML = "more than a month ago";
} else if (diff > units.week) {
this.innerHTML = format(Math.floor(diff / units.week), "week") + " ago";
} else {
var pieces = [], num, consider = ["day", "hour", "minute", "second"], measure;
for (var i = 0, l = consider.length; i < l; ++i) {
measure = units[consider[i]];
if (diff > measure) {
num = Math.floor(diff / measure);
pieces.push(format(num, consider[i]));
}
}
this.innerHTML = (pieces.length == 1 ? pieces[0] :
pieces.slice(0, pieces.length - 1).join(", ") + " and " +
pieces[pieces.length - 1]) + " ago";
}
});
};
}());
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11