gpt4 book ai didi

javascript - 如何测试在异步测试中返回 promise 的 stub ?

转载 作者:数据小太阳 更新时间:2023-10-29 03:53:06 28 4
gpt4 key购买 nike

我如何以异步方式测试它?

it('Should test something.', function (done) {

var req = someRequest,
mock = sinon.mock(response),
stub = sinon.stub(someObject, 'method');

// returns a promise
stub.withArgs('foo').returns(Q.resolve(5));

mock.expects('bar').once().withArgs(200);

request(req, response);

mock.verify();

});

这里是测试方法。

var request = function (req, response) {

...

someObject.method(someParameter)
.then(function () {
res.send(200);
})
.fail(function () {
res.send(500);
});

};

如您所见,我正在使用 node.js、Q(用于 promise )、sinon 用于模拟和 stub ,以及 mocha 作为测试环境。由于请求方法的异步行为,上面的测试失败了,我不知道何时在测试中调用 done()。

最佳答案

您需要在所有异步操作完成后调用 done。你认为那会是什么时候?您通常如何等待请求完成?

it('Should test something.', function (done) {

var req = someRequest,
mock = sinon.mock(response),
stub = sinon.stub(someObject, 'method');

// returns a promise
stub.withArgs('foo').returns(Q.resolve(5));

mock.expects('bar').once().withArgs(200);

request(req, response).then(function(){
mock.verify();
done();
});

});

在附加到请求 promise 的错误回调中将您的测试标记为失败也是一个好主意。

关于javascript - 如何测试在异步测试中返回 promise 的 stub ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16015728/

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