Point1
今天在写测试的时候干了一件非常蠢的事情,记录一下,提醒自己:sinon.stub可以mock测试类中的方法,但是如果A方法被同一个类中的B方法调用,当B执行的时候,调用的还是原来的A方法
1 2 3 4 5 6 7 8
   |  function test1 () {     console.log('test1'); }
  module.exports = {     test1 }
 
  | 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
   |  const test1 = require('./testForSinon1'); function test2Inner() {     console.log('_test2Inner'); }
  function test2 () {     test1.test1();     test2Inner();     console.log('test2'); }
  module.exports = {     test2,     test2Inner }
 
  | 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
   |  const sinon = require('sinon'); const test1 = require('./lib/testForSinon1'); const test2 = require('./lib/testForSinon2');
  sinon.stub(test1, 'test1').callsFake(() => {     console.log('test1-stub'); })
  sinon.stub(test2, 'test2Inner').callsFake(() => {     console.log('test2Inner-stub'); })
 
  test2.test2Inner();
 
  test2.test2();
 
 
 
 
  | 
 Point2
如果你在A中通过如下方法引入一个方法
1 2
   |  const { b } = require('./B.js');
 
  | 
然后在测试中
1 2 3 4 5 6 7
   | import B from './B.js';
  ... ... ...
  sinon.stub(B, 'b');
   | 
这样其实是没有用的,调用的还是b方法的本身