sinon.restore()似乎没有将存根方法还原到其原始状态

时间:2019-07-24 21:15:39

标签: javascript mocha sinon

我正在尝试在after()钩子内部调用sinon.restore(),但是它不执行在before()钩子内部编写的任何操作。

我已经编写了一些代码,用于在before()中为其中一项服务创建存根,并尝试返回多个收益。

然后,为了还原存根,我试图在after()函数中创建sinon.restore(),但是它不执行任何在before()内部编写的代码。

TestController1.test.js

var sinon = require('sinon');

describe('some test controller 1', function () {

    before(function () {
        var prop12 = { TEST: 'TEST_NAME'};
        testStub1 = sinon.stub(mockService, 'getServiceByName');

        testStub1.onCall(0).yields(null, prop12); // call 0
        testStub1.onCall(1).yields(null, prop12); // call 1
    });

    after(function () {
        sinon.restore();
    });

    it('should test function 0', function() {
        // rely on call 0 and test;
    });

    it('should test function 0', function() {
        // rely on call 1 and test;
    });

});

如果我没有在after()钩子中编写sinon.restore(),它会执行,但是还有其他一些测试控制器在相同的服务上具有相似的存根,因此它们也会失败。

预先感谢...

0 个答案:

没有答案