兴农依赖功能作假

问题描述 投票:1回答:1

我想伪造或存根未用作object.See mylib.js的方法的功能

//multi P理财ton.就是

module.exports = function(x,y) {
  return x*y;
}

//没有离别.就是

let Multiplication = require('./multiplication');

let myLib = function(x,y) {
  var result = Multiplication(x,y)
  return result
}

module.exports = myLib;

//test.就是

let sinon = require('sinon');
let mylib = require('./mylib');
let chai = require('chai');
let expect = chai.expect;

describe('My Test', function() {

   it('Faking Globally',function() {
     //How do I declare 'multiplication' as Globally and fake it.
     expect(mylib(2,3)).to.deep.equal(6);
   })

})

javascript unit-testing sinon chai
1个回答
0
投票

如果你想全局替换一个模块,你需要使用一个连接缝,基本上注入不同的模块(例如一个兴农间谍),而不是真正的一个。你可以看到a whole how-to in the Sinon documentation

对于你的情况会是这样的

const proxyquire = require('proxyquire');
const sinon = require('sinon');
const chai = require('chai');
const expect = chai.expect;

// replace the dependency with a stub
const multiplicationFake = sinon.fake.returns(42);
const mylib = proxyquire('./mylib', { './multiplication': multiplicationFake });

describe('My Test', function() {

   it('Faking Globally',function() {
     const result = mylib(2,3);
     expect(multiplicationFake.calledOnce).to.equal(true);
     expect(result).to.deep.equal(42);
   })   
})

我用兴农假货这里,但如果你喜欢他们,你可以使用间谍或存根。

© www.soinside.com 2019 - 2024. All rights reserved.