Sinon存根不适用于先前的导入

时间:2018-12-08 16:11:10

标签: node.js ecmascript-6 import sinon stub

我对存根路由中间件有问题。在我的应用程序中,我有使用快速路由的nodejs express应用程序:

class App{
  constructor(){
   this.app = express();
   ...
   ...
   this.app.use('/api/user', userRouting);
   }
 }
 export default App;

此userRouting使用我要订阅的中间件。

在我的测试目录中,我有以下文件:

  • brandRouting.js
  • userRouting.js

没有brandRouting文件,一切都很好。

userRouting.js文件:

describe('user routing test', () => {
  before(()=>{
    sinon.stub(tokenService, 'verifyToken').callsFake(function(req, res, next) {
     return next();
  });
   App = require('../../src/app');
   server = new App.default().app.listen(3000);

   after(()=>{
     sinon.restore();
     server.close();
  });
  it('should create user', (done)=> {
    sinon.stub(userController, 'createUser').resolves('user created');      
    chai.request(server)
      .post('/api/user')
      .end((err, res) => {
        expect(res.text).to.be.equal('user created');
        done();
      });

  });
});

当我将测试包含在brandRouting.js中时,出现问题。它会在用户测试之前运行,并且userRouting中的中间件存根无法正常工作。

describe('brand routing test', () => {
  before(()=>{
   App = require('../../src/app');
   server = new App.default().app.listen(3000);

   after(()=>{
     sinon.restore();
     server.close();
  });
});

0 个答案:

没有答案