我是Jest新手,遇到了问题,我在网上找到的答案都不起作用。我需要模拟一个模块,它包含类(“Client”)和一个函数(“getCreds”)。类Client然后包含函数Login。这是我想测试的代码的外观
import * as sm from 'some-client';
const smCli: sm.Client = new sm.Client();
export const getKey = async (): void => {
const smCreds = await sm.getCreds();
await smCli.login(smCreds);
};
问题是,虽然我可以很容易地模拟getCreds函数,但我不知道如何模拟客户端示例的登录函数,也不知道如何正确测试getKey函数。我尝试了许多类似的行,但没有一行起作用。有人能告诉我哪里出错了吗?谢谢。
import * as sm from 'some-client';
jest.mock('some-client');
const smClientMock = sm.Client as jest.Mock<unknown>
const smGetCredsMock = sm.getCreds as jest.Mock<Promise<unknown>>
smGetCredsMock.mockResolvedValue(1);
smClientMock.mockImplementation(() => {
return {
login: () => {
return 2;
}
};
});
1条答案
按热度按时间x4shl7ld1#
你可以使用mockFn. mock. instances来获得
sm.Client
类的模拟示例,这样你就可以在示例上Assert.login()
方法。例如
some-client.ts
:index.ts
:index.test.ts
:试验结果:
软件包版本: