【发布时间】:2020-06-09 11:32:43
【问题描述】:
我正在使用 typescript + jest,并且在创建模拟实现时遇到了一些类型检查问题。例如,我想从aws-sdk 模拟Credentials 对象:
import { Credentials } from "aws-sdk";
jest.mock("aws-sdk");
const CredentialsMock = mocked(Credentials);
describe("Foo test", () => {
beforeAll(() => {
CredentialsMock.mockImplementation(() => { /*** <--- Type checking fails here ***/
return {
get: jest.fn()
}
});
});
});
我遇到的问题是,当我只想模拟一个方法时,类型检查器希望我为 Credentials 类型的每个方法/属性提供模拟。具体错误是:
TS2345: '() 类型的参数 => { get: jest.Mock; }' 不能分配给类型为 '(accessKeyId: string, secretAccessKey: string, sessionToken?: string | undefined) => Credentials'的参数。
输入 '{ 获取:模拟; }' 缺少“凭据”类型的以下属性:getPromise、needsRefresh、refresh、refreshPromise 和另外 5 个。
有没有办法让打字稿在这里快乐?
【问题讨论】:
标签: typescript jestjs ts-jest