当前位置: 首页 > 面试题库 >

Sinon错误尝试包装已经包装的函数

山越
2023-03-14
问题内容

尽管这里有一个相同的问题,但是我找不到我的问题的答案,所以这里是我的问题:

我正在使用mocha和chai测试我的node js应用程序。我正在用sinion封装功能。

describe('App Functions', function(){

  let mockObj = sinon.stub(testApp, 'getObj', (dbUrl) => {
     //some stuff
  });
  it('get results',function(done) {
     testApp.someFun
  });
}

describe('App Errors', function(){

  let mockObj = sinon.stub(testApp, 'getObj', (dbUrl) => {
     //some stuff
  });
  it('throws errors',function(done) {
     testApp.someFun
  });
}

当我尝试运行此测试时,它给了我错误

Attempted to wrap getObj which is already wrapped

我也尝试过

beforeEach(function () {
  sandbox = sinon.sandbox.create();
});

afterEach(function () {
  sandbox.restore();
});

在每个描述中,但仍然给我相同的错误。


问题答案:

您应该恢复getObjin after()功能,请按以下方法尝试。

describe('App Functions', function(){
    var mockObj;
    before(function () {
            mockObj = sinon.stub(testApp, 'getObj', () => {
                 console.log('this is sinon test 1111');
            });
    });

    after(function () {
        testApp.getObj.restore(); // Unwraps the spy
    });

    it('get results',function(done) {
        testApp.getObj();
    });
});

describe('App Errors', function(){
    var mockObj;
    before(function () {
            mockObj = sinon.stub(testApp, 'getObj', () => {
                 console.log('this is sinon test 1111');
            });
    });

    after( function () {
        testApp.getObj.restore(); // Unwraps the spy
    });

    it('throws errors',function(done) {
         testApp.getObj();
    });
});


 类似资料:
  • 我不熟悉使用声纳。我正在尝试运行Sonar服务器,但出现错误 检查日志中的web获取错误无法初始化与ProtocolHandler[“http nio-0.0.0-9000”]java关联的endpoint。网BindException:地址已在使用中:bind我不确定这个问题的解决方案是什么,我已经更改了包装器中的Java路径。conf也在环境变量中添加了路径。请帮我做这个。

  • 谁能帮帮我。 我得到一个NoClassDefFound错误,我不知道为什么。 这是我的主要课程: 下面是我的堆栈跟踪:

  • 我正在使用python2.7并试图使用pip安装scrapy,但得到以下结果:异常:回溯(最近一次调用):文件“/usr/local/lib/python2.7/dist-packages/pip/basecommand.py”,第215行,主状态=self.run(选项,args)文件“/usr/local/lib/python2.7/dist-packages/pip/commands/ins

  • 我尝试为symfony安装aimeos捆绑包,但出现以下错误: 您的PHP版本5.5.1受到CVE-2013-6420的影响,无法安全地执行rm证书验证,我们强烈建议您升级。用包信息加载作曲家存储库更新依赖项(包括要求开发)您的需求无法解析为一组可安装的包。 问题1-aimeos/aimeos symfony的安装请求~2016.04- 潜在原因:-软件包名称输入错误-根据最小最小最小稳定性设置,

  • 尝试使用web3j调用一个契约中的一些函数。我按照坚实的指南,并得到了。阿比和。本合同bin-https://ethers can . io/address/0x 9 DDA 40 dab 849 BBB 087 dcbcf 0 c 5223 EC 5 FFA 0 ad 7 #代码。然后使用web3j命令行来制作。java文件包装器,输出到正确的目录。 除了这几行,一切都正常: 投掷误差: 还有这

  • 我正在开发一个应用程序,如果我从android studio运行到我的设备上,它绝对运行良好。如果我将我的apk放入google drive并与其他人共享,它会显示错误< code >(“Android apk安装失败。安装包错误,无法安装。)当他们尝试安装应用程序时。不是署名的apk。它仍处于原型阶段(调试模式)。 请让我知道我哪里做错了。