我正在使用一个函数从 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();
});
});
});
问题是:
- 不能保证
waits(2000)
能很好地完成这项工作。由于各种原因(网络连接、api本身的算法效率等),我可能不得不waits(5000)
或更多,或者对于某些模型waits(500)
来说已经足够了。而最烦人的是,一切都失控了。 - 很多
waits()
使测试规范运行浪费大量时间等待。运行整个套件的时间太长,无法接受。
有没有一些best practice
做那里的事情?
PS:我知道单元测试不应该应用于一些依赖webapi或数据库的功能。但我正在使用单页 js-heavy-webapp。数据获取过程与我将如何在 js 模型中使用它们一样重要。