如何使用sinon模拟非类成员函数

时间:2019-04-18 15:30:14

标签: javascript testing mocha sinon

我需要将模拟添加到method2函数。但是我出错了

  

“ TypeError:尝试将未定义的属性method2包装为函数”

| name  | bool_or |
|-------+---------|
| Tom   | t       |
| Josh  | t       |
| Harry | f       |

2 个答案:

答案 0 :(得分:0)

您忘记导出异步方法2

// my-module.es6

export default class ServiceClass {

  async method1() {

  }

}

export async function method2() {}

// test.js

import { method2 } from 'my-module';

const spy = sinon.spy(method2);

但是,不清楚您是否打算将method2放在您的班级中?如果是这样,您将执行与method1相同的操作,并执行类似的操作

// test.js

import ServiceClass from 'my-module';

const serviceClass = new ServiceClass();

const spy = sinon.spy(serviceClass, 'method2');

答案 1 :(得分:0)

在method2内部,我正在调用另一个method3。我添加了模拟。不幸的是,导出method2没有给出预期的输出。

async function method2{
 method3();
}

method3(){
 //wrote mock here and it worked.
}