当前位置:嗨网首页>书籍在线阅读

09-解决方案

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

18.2.2 解决方案

QUnit提供三个断言。

**ok(boolean[, message ])**

最基本的断言是 ok() ,它只有一个布尔参数。当参数为真时,断言通过;否则,失败。此外,它还接受一个字符串作为测试结果中显示的消息:

test("ok test", function() {
   ok(true, "ok succeeds");
   ok(false, "ok fails");
});

**equals(actual, expected[, message ])**

equals断言使用简单比较运算符( == )比较实际和预期参数。当两者相等时,断言通过;否则,失败。当该断言失败时,在测试结果中显示预期和实际值,以及指定的消息:

test("equals test", function() {
   equals("", 0, "equals succeeds");
   equals("three", 3, "equals fails");
});

ok() 相比, equals() 更易于调试失败的测试,因为导致测试失败的值很明显。

**same(actual, expected[, message ])**

same() 断言可以像 equals() 一样使用,在大部分情况下前者是更好的选择。它用更精确的比较运算符( === )代替简单比较运算符( == )。这样, undefined 不会等于 null 、0或者空串( "" )。它还比较对象的内容,所以 {key: value} 等于 {key: value} ,即使比较的两个对象标识不同。

same() 还能处理NaN、日期、正则表达式、数组和函数,而 equals() 只能检查对象标识:

test("same test", function() {
   same(undefined, undefined, "same succeeds");
   same("", 0, "same fails");
});

当确定不比较两个值的内容时,仍然可以使用 equals() 。一般来说, same() 是更好的选择。