gpt4 book ai didi

angularjs - 一起测试 Parse Promise 和 $http 请求时出错

转载 作者:可可西里 更新时间:2023-11-01 17:32:39 25 4
gpt4 key购买 nike

我正在尝试测试在调用 http: 之前等待 Promise 的代码:

代码:

function foo() {
return Parse.Promise.as(1).then(function(one) {
return $http.get('/bar');
});
}

测试:

describe('foo', function() {
it('gets', function(done) {
$httpBackend.expect('GET', '/bar').respond(200);
foo().then(function(res) {
expect(res.status).to.be.equal(200);
done();
});
$httpBackend.flush();
});
});

错误:

1) gets
foo
No pending request to flush !

我的猜测是因为 Parse.Promise 延迟了 promise 解析,并且在调用 $httpBackend.flush 时没有发出 http 请求。

有解决办法吗?

最佳答案

Mocha 实际上有 promise 语法支持,你可以直接通过删除 done 参数并返回 promise 来测试 promise:

describe('foo', function() {
it('gets', function() { // no `done`
try {
$httpBackend.expect('GET', '/bar').respond(200);
return foo().then(function(res) { // return here
expect(res.status).to.be.equal(200);
});
} finally {
$httpBackend.flush();
}
});
});

关于angularjs - 一起测试 Parse Promise 和 $http 请求时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38164410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com