【问题标题】:Mocha subbing results are different based on the file pathMocha subbing 结果因文件路径而异
【发布时间】:2019-04-01 17:57:31
【问题描述】:

我正在尝试在我的 Node 应用程序中使用 Sinon 设置中间件的存根。 当我运行 mocha 测试并直接指向测试文件时,它会正确存根。当我指向我所有的测试文件夹并递归运行测试时,它不会存根中间件并失败。

文件结构:

test
  functional
    checklist
      test.spec.js
lib
  middleware
   auth.js (this is what is being stubbed out)

test.spec.js

const chai = require('chai');
const chaiHttp = require('chai-http');
const sinon = require('sinon');
chai.use(chaiHttp);
const should = chai.should();

// Requirements
const auth = require('../../../lib/middleware/auth')

describe('/checklist/checklistItemLevel',function() {
    let checkTokenStub;
    beforeEach(function(){
        checkTokenStub = sinon.stub(auth,'checkToken').callsFake((req,res,next)=>{
            console.log('Stubbed')
            next()
        });


    })
    afterEach(function(){
        auth.checkToken.restore();
    })
    context('/ POST',function() {
        it('should return hello',function(done){
            chai.request(require('../../../server'))
            .post('/api/v1/checklist/checklistItemLevel')
            .end((err,res)=>{
                res.should.have.status(200);
                res.text.should.be.eql('Hello');
                done(err);
            })
        })
    })
})

router.js

const router = require('express').Router();
const controller = require('./controller')
const auth = require('../../../lib/middleware/auth')

router.post('/',auth.checkToken,(req,res,next)=>{
    res.send('Hello');
});

module.exports = router;

摩卡通话

mocha "**/*.spec.js" // <- Doesnt stub out middleware
mocha "test/functional/checklist/*.spec.js" // <- Stubs out successfully

【问题讨论】:

    标签: node.js mocha.js sinon


    【解决方案1】:

    找到了答案。摩卡咖啡工作正常。但是该应用程序正在被另一个测试用例缓存,因此它在没有存根的情况下运行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-17
      • 2018-08-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多