单元测试
- 单元测试是比集成测试更底层的测试,用于确保特定的后台代码片段能正常运行;
- 前端单元测试更多是为了发现浏览器兼容性的bug;
断言
断言是测试的核心,是一些表述代码期望执行结果的语句
//正确性检查assert()函数
var assert = function(value, msg) {
if(!value) {
throw(msg || (value + "dose not equal true"));
}
};
//检查比较对象的assertEqual()函数
var assertEqual = function(val1, val2, msg) {
if(val1 !== val2) {
throw(msg || (val1 + " does not equal " + val2));
}
}
常见测试类库
驱动
驱动实际上是一个守护进程,它整合了不同的浏览器,可以自动运行js测试代码,测试不通过会给出提示
无界面测试
主要是为了在服务器端js(node.js运行测试)而不是直接显示在浏览器端
控制台
控制台函数
- $0 是当前选中的元素
$0.style.color = "red";
-
$() ,元素选择器
-
[(), 属性选择器 ]
-
clear(), 清空控制台
-
dir(object), 输出对象中的所有属性
-
keys(object), 返回对象中所有属性组成的数组
-
values(object), 返回对象属性值组成的数组
Profile和函数运行时间
conosle.profile();
//code
console.profileEnd();
console.time("timename");
//code
console.timeEnd("timename");
- 在chrome的profile项中可以看到生成的统计数据
- 在控制台中可以看到输出的运行时间
timename: 11.624ms