首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用jest模拟typescript中的外部依赖

在 TypeScript 中使用 Jest 模拟外部依赖的方法如下:

  1. 首先,安装 Jest 和相关的 TypeScript 类型定义库:
代码语言:txt
复制
npm install --save-dev jest ts-jest @types/jest
  1. 在项目根目录下创建一个 jest.config.js 文件,并添加以下内容:
代码语言:txt
复制
module.exports = {
  preset: 'ts-jest',
  testEnvironment: 'node',
};
  1. package.json 文件中添加以下脚本命令:
代码语言:txt
复制
"scripts": {
  "test": "jest"
}
  1. 创建一个 TypeScript 文件,例如 example.ts,其中包含需要测试的代码和外部依赖:
代码语言:txt
复制
import { fetchData } from './api';

export async function getData() {
  const response = await fetchData();
  return response.data;
}
  1. 创建一个与 example.ts 文件相对应的测试文件,例如 example.test.ts,并编写测试代码:
代码语言:txt
复制
import { getData } from './example';
import { fetchData } from './api';

jest.mock('./api', () => ({
  fetchData: jest.fn(),
}));

describe('getData', () => {
  it('should return the data from fetchData', async () => {
    const mockData = { data: 'mocked data' };
    (fetchData as jest.MockedFunction<typeof fetchData>).mockResolvedValueOnce(mockData);

    const result = await getData();

    expect(result).toEqual(mockData.data);
    expect(fetchData).toHaveBeenCalledTimes(1);
  });
});

在上述测试代码中,我们使用 jest.mock 方法来模拟 fetchData 函数,并使用 mockResolvedValueOnce 方法来指定模拟函数的返回值。然后,我们可以编写断言来验证 getData 函数是否正确地使用了模拟的外部依赖。

  1. 运行测试命令:
代码语言:txt
复制
npm test

Jest 将会执行测试文件中的测试代码,并输出测试结果。

这是一个使用 Jest 模拟 TypeScript 中的外部依赖的基本示例。根据具体的项目和需求,你可能需要进一步了解 Jest 的其他功能和配置选项,以及如何模拟不同类型的外部依赖。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券