问题描述
// util.js
exports.utilMethod = function() {}
// endpoint.js
const { utilMethod } = require('./util');
app.post(
'/endpoint',function(req,res) {
res.status(200).json({ done: true });
someAsyncCall().then(function() {
utilMethod();
});
}
);
//endpoint_spec.js
const util = require('./util');
const endpoint = require('./endpoint');
const utilStub = sinon.stub(util,'utilMethod');
const express = require('express');
const request = require('supertest');
const chai = require('chai');
const { expect } = chai;
const app = express();
app.use('/endpoint',endpoint);
describe('/endpoint',function() {
it('invokes `utilMethod`'',function(done) {
request(app)
.post('/endpoint')
.send({ data: 'test' })
.set('Accept','application/json')
.expect('Content-Type',/json/)
.expect(200)
.end(function() {
expect(utilStub.called).to.eql(true);
done();
});
});
});
expect
失败
Uncaught AssertionError: expected false to deeply equal true
+ expected - actual
-false
+true
我已将日志语句放在 utilMethod
中并确认它确实被调用了,但测试在端点响应之后立即运行,也就是在调用 utilMethod
之前。有没有办法解决这个问题?我正在使用 mocha、chai 和 supertest。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)