如何使用Jest模拟打字稿中的函数类型

时间:2020-04-14 06:04:03

标签: javascript typescript web jestjs

我有一个包含function types的界面,如下所示:

interface MyInterface {
  (a: string, b: string): Promise<SomeType>;
  someFunction(a: string): Promise<SomeType>;
}

假设该接口位于模块m中。

当我使用它时,我会做类似的事情:

import MyInterface from m;

function foo() {
  return MyInterface('abc', 'def');
}

我知道,如果我想测试someFunction的调用次数,可以使用jest.spyon,如下所示:

import MyInterface from m;

const myMock = jest.spyon(MyInterface, 'someFunction');

...

expect(myMock).toHaveBeenCalledTimes(1);

但是,如果我想知道函数类型被调用了多少次以及使用了哪些参数,应该如何测试呢?困难在于它没有名称。它就像一个匿名函数。我无法像使用someFunction一样进行类似操作。

我应该怎么做?

0 个答案:

没有答案