这里我进行了一个最简单的测试,测试一个函数的是不是正确,我们在测试函数中调用该函数并和我们预想的结果进行对比,如果对比失败册触发断言,下面是最终结果:
如果我们现在将上面的代码改成下面这样:
1 function add(a, b) { 2 return a + b + 1; 3 } 4 5 test("Test Method 1", function () { 6 ok(add(1, 2) == 3, "Test Method 1 Pass"); 7 }); |
那么最终就会触发断言,结果就是这样的:
2.如果强制指定断言的数量
有时我们可能有5个断言,但是QUnit可能最后只识别了3个其他断言仅仅是因为语句错误未执行到,这个时候我们就需要强制指定断言的数量。
假设上面的示例中应该有两个断言,代码如下改动:
1 function add(a, b) { 2 return a + b + 1; 3 } 4 5 test("Test Method 1", function () { 6 expect(2); 7 ok(add(1, 2) == 3, "Test Method 1 Pass"); 8 }); |
这里我们可以看到使用了 expect 这个函数,当然你也可以像下面这样写:
1 function add(a, b) { 2 return a + b + 1; 3 } 4 5 test("Test Method 1",2, function () { 6 ok(add(1, 2) == 3, "Test Method 1 Pass"); 7 }); |
但是QUnit官方的说明文档中已经声明了不建议使用这个方式,所以我们尽量使用前者。
下面是上面两个不同方式的结果:
我们可以清楚的看到这里报了两个错误,但实际只有一个断言没有成功。所以这样我们就实现了最终的结果。
3.异步测试
在对比较大的模块进行测试的时候,可能会出现使用定时器等耗时的测试,但是我们不能因为一个功能的耗时而导致后面的所有测试都要等待这个测试完成,
所以我们就需要使用异步测试,当然如果你的模块必须是顺序的执行那么只能使用test了。