如何在unit testing路由时将快速路由所调用的控制器进行存储

我正在尝试unit testing快速路由,如下所示:

var app = express(); app.get('/',indexController.Index); 

在我的unit testing中,我使用的代码如下:

 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(); }); }); }); 

正如你所看到的,我想要做的就是把控制器存根出来。 但是,这似乎并没有工作(原来的控制器似乎被称为而不是存根)。 我不明白为什么。 (在对控制器和模型进行unit testing时,也采用相同的方法。)

有人可以解释为什么这不起作用。 还有其他testing这些路由器的方法。