Как смоделировать функцию, не являющуюся членом класса, используя sinon - PullRequest
1 голос
/ 18 апреля 2019

Мне нужно добавить макет для функции method2. но я получаю ошибку

"TypeError: Попытка обернуть неопределенное свойство method2 как функцию"

class ServiceClass {

  async method1() {

  }

}

async function method2() {}

module.exports = ServiceClass;

Ответы [ 2 ]

0 голосов
/ 20 апреля 2019

Внутри метода2 я вызывал другой метод3. я добавил к этому насмешку. К сожалению, экспорт метода2 не дал ожидаемого результата.

async function method2{
 method3();
}

method3(){
 //wrote mock here and it worked.
}
0 голосов
/ 18 апреля 2019

Вы забыли экспортировать свой асинхронный метод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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...