我正在编写以下函数的测试用例:
handleShare(response, payload) {
ShareUtils.listUsers()
.then((users) => {
users.forEach(user => userList.push({
name: user.name,
id: user.id)
});
return SessionUtils.getSessionData(SESSION_ID));
})
.then((sessionData) => {
//construct share object
return fetch('http://myEndpoint', {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
})
})
.then(r => r.json())
.then((response) => {
Logger.log(response)
})
.catch((err) => {
ErrorHandler.error(err)
});
}
我的测试用例是
describe('Share Controller', function() {
it('should call handleShare correctly', function(done) {
let listUsers = sinon.stub(ShareUtils, 'listUsers').resolves(listOfUsers);
let sessionData = sinon.stub(SessionUtils, 'getSessionData').resolves(slackSessionData);
fetchMock.mock({
name: 'share',
matcher: '/myEndpoint/',
method: 'POST',
response: 'ok'
})
.catch();
ShareController.handleShare({}, payload);
console.log(fetchMock.done());
expect(fetchMock.called()).to.be.true;
done();
});
});
但每当我运行测试用例时,它都会输出 AssertionError:预期false为真
我错过了什么吗?我已经正确设置了mocha测试套件,并且每个其他测试运行正常,但是这个fetch模拟确实很麻烦。 感谢您的帮助。