嘲笑的`mock.calls`与模拟打字稿类为空

时间:2018-12-07 11:02:14

标签: typescript jestjs

我有一个EntityConfigurationMapper方法的打字稿类map。我在这样的Jest测试中嘲笑它:

const mock = jest.fn<EntityConfigurationMapper>()
      .mockImplementation(() => ({
        map: (conf): Entity => {
          return {...};
        }
      }));
const instance = new entityConfigurationMapperMock();

然后被使用等

我想检查呼叫,which should be like mock.calls[0][0]等。但是,mock.calls是一个空数组。

我已将控制台放入模拟的map方法中,并且它按预期输出,因此该模拟调用模拟的实现,只是不将其记录在calls数组中。

知道为什么calls为空吗?

1 个答案:

答案 0 :(得分:0)

啊,在this的帮助下解决了。您必须使用jest.fn来模拟函数调用以及类:

const map = jest.fn((conf, ids): Entity  => {
  return {...};
})

const mock = jest.fn<EntityConfigurationMapper>()
    .mockImplementation(() => ({
      map
    }));
const instance = new entityConfigurationMapperMock();

然后您可以调查map上的呼叫:

map.mock.calls