3

我正在尝试对快速路由进行单元测试,例如:

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

正如你所看到的,我想要做的是将控制器存根。但这似乎不起作用(似乎调用了原始控制器而不是存根)。我不知道为什么。(在对控制器和模型进行单元测试时,同样的方法也有效。)

有人可以解释为什么这不起作用。以及测试这些路由器的任何替代方法。

4

0 回答 0