hbr*_*rls 9 javascript jasmine
我正在使用一个函数从webapi获取数据.基本使用$.ajax
.
我现在用waits()
这样测试它:
describe('xxxxxxxxxxxxxxxxxxxxx', function () {
var r;
it('fetchFilter', function () {
runs(function () {
model.fetch(opts)
.done(function(data) {
r = data;
});
});
waits(2000);
runs(function () {
expect(r[0].gender).toBeDefined();
});
});
});
Run Code Online (Sandbox Code Playgroud)
问题是:
waits(2000)
很好地完成工作.由于各种原因(网络连接,api it self的算法效率等),我可能要waits(5000)
或者更多,或者对于某些模型waits(500)
来说已经足够了.最令人讨厌的是它完全失控.waits()
因为测试规范浪费了很多时间等待.运行整个套件的时间太长,无法接受.有没有best practice
做过那种事情?
PS:我知道单元测试不应该应用于某些依赖webapi或数据库的函数.但我正在使用单页js-heavy-webapp.数据获取过程与我如何使用js模型一样重要.
ist*_*iuk 12
waitsFor()
将等待指定的闩锁回调返回true
(它将每隔几毫秒尝试很多次).如果超过指定的超时(在这种情况下为5000ms),它也会引发异常.
describe('xxxxxxxxxxxxxxxxxxxxx', function () {
var r, fetchDone;
it('fetchFilter', function () {
runs(function () {
model.fetch(opts).done(function(data) {
r = data;
fetchDone = true;
});
});
waitsFor(function() {
return fetchDone;
}, 5000);
runs(function () {
expect(r[0].gender).toBeDefined();
});
});
});
Run Code Online (Sandbox Code Playgroud)
有关和的更多信息,请查看Jasmine文档waitsFor()
runs()
归档时间: |
|
查看次数: |
11333 次 |
最近记录: |