我正在尝试对快速路由进行单元测试,例如:
var app = express();
app.get('/',indexController.Index);
在我的单元测试中,我使用如下代码:
const indexController = {};
indexController.Index = sinon.stub();
const server = proxyquire('../server.js', { './controllers/indexController': indexController });
describe('GET /', () => {
it('index controller should be called', (done) => {
request(server)
.get('/')
.expect(200)
.end((err, res) => {
if (err) {
return done(err);
}
sinon.assert.called(indexController.Index);
return done();
});
});
});
正如你所看到的,我想要做的是将控制器存根。但这似乎不起作用(似乎调用了原始控制器而不是存根)。我不知道为什么。(在对控制器和模型进行单元测试时,同样的方法也有效。)
有人可以解释为什么这不起作用。以及测试这些路由器的任何替代方法。