Javascript 如何在Jest中正确地模拟类模块?
我正在使用这个Javascript 如何在Jest中正确地模拟类模块?,javascript,typescript,jestjs,ts-jest,Javascript,Typescript,Jestjs,Ts Jest,我正在使用这个振幅模块,它要求我首先实例化一个类,然后使用实例方法。代码如下: var Amplitude = require('amplitude'); const amplitude = new Amplitude(process.env.amplitudeApiKey); 然后我稍后调用await amplication.track({something:'here'}),并希望模拟它,以便不调用外部库,并且我可以验证参数。我必须初始化一个类,这一事实让我很恼火 我尝试使用\uuuuuu
振幅模块,它要求我首先实例化一个类,然后使用实例方法。代码如下:
var Amplitude = require('amplitude');
const amplitude = new Amplitude(process.env.amplitudeApiKey);
然后我稍后调用await amplication.track({something:'here'})
,并希望模拟它,以便不调用外部库,并且我可以验证参数。我必须初始化一个类,这一事实让我很恼火
我尝试使用\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。就我个人而言,我不知道该如何嘲笑这种情景。有什么想法吗?所以我最终采用了这种方法
“Typescript建议自动模拟,这已经变成了一个”你能澄清或重新措辞这个吗?打开。基本上,它建议使用自动模拟,但据我所知,网络请求仍在尝试。这意味着您在jest配置中启用了吗?我想我没有,但我看到它现在默认启用了
const Amplitude = require('amplitude');
jest.mock('amplitude');
test('#trackInAmplitude calls the amplitude track event', async () => {
// Put the code here that calls my `track method`
const mockAmplitude = Amplitude.mock.instances[0];
expect(mockAmplitude.track.mock.calls[0][0]).toEqual('argument body');
});