初始化

  1. mkdir leetcode && cd leetcode
  2. # 初始化
  3. cnpm init -y
  4. #依赖安装
  5. cnpm i jest @types/jest ts-jest typescript -D

目录结构

截屏2021-03-29 上午11.02.53.png

Package.js

  1. {
  2. "name": "leetcode",
  3. "version": "1.0.0",
  4. "description": "",
  5. "main": "index.js",
  6. "scripts": {
  7. "test": "npx jest",
  8. "coverage": "npx jest --coverage" // 生成测试报告
  9. },
  10. "keywords": [],
  11. "author": "",
  12. "license": "ISC",
  13. "devDependencies": {
  14. "@types/jest": "^26.0.22",
  15. "jest": "^26.6.3",
  16. "ts-jest": "^26.5.4",
  17. "typescript": "^4.2.3"
  18. }
  19. }

jest.config.js

  1. module.exports = {
  2. preset: 'ts-jest',
  3. testEnvironment: 'node',
  4. };

测试

源文件

  1. // src/1/index.ts
  2. /**
  3. * @param {number[]} nums
  4. * @param {number} target
  5. * @return {number[]}
  6. */
  7. function twoSum(nums: number[], target: number) {
  8. let map = new Map();
  9. for (let i = 0; i < nums.length; i++) {
  10. let temp = target - nums[i];
  11. if (map.has(temp)) {
  12. return [map.get(temp), i];
  13. } else {
  14. map.set(nums[i], i);
  15. }
  16. }
  17. return [];
  18. }
  19. export default twoSum;
  20. // src/1/index.spec.ts
  21. import twoSum from "./index";
  22. describe.each([
  23. [[2, 7, 11, 15], 9, [0, 1]],
  24. [[3, 2, 4], 6, [1, 2]],
  25. [[3, 3], 6, [0, 1]],
  26. ])("两数之和", (arr, target, expected) => {
  27. test(`${arr} + ${target} => ${expected}`, () => {
  28. expect(twoSum(arr, target)).toStrictEqual(expected);
  29. });
  30. });

jest

截屏2021-03-29 上午11.09.09.png

测试报告

截屏2021-03-29 上午11.04.31.png

测试报告文件

路径: coverage/lcov-report/index.html
截屏2021-03-29 上午11.04.53.png