使用jest测试typescript

11 篇文章 0 订阅
7 篇文章 0 订阅


在react项目中使用jest,测试typescript代码时遇到问题,已经解决,现做记录。经供参考,实际情况可能有出入。

安装相关的插件

1.首先要先安装jest
2.安装typescript
3.安装 "ts-jest": "^26.5.3"(我装的是这个版本)

添加配置文件

在根目录下添加tsconfig.json 文件
配置如下

{
  "compilerOptions": {
    "outDir": "./app/dist/",
    "module": "commonjs",
    "target": "es2015",
    "sourceMap": true,
    "jsx": "react",
    "moduleResolution": "node",
    "esModuleInterop": true,
    "allowJs": false,
    "lib": ["es2015", "es2017", "es2016", "dom"]
  },
  "include": ["app/**/*.ts", "app/**/*.tsx", "./**/*.ts", "app/main.dev.ts"],
  "exclude": ["node_modules", "dist", "test"]
}

package.json文件的配置

"jest": {
    "preset":"ts-jest",
    "testURL": "http://localhost/",
    "timers": "1000",
    "moduleNameMapper": {
      "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/internals/mocks/fileMock.js",
      "\\.(css|less|sass|scss)$": "identity-obj-proxy"
    },
    "moduleFileExtensions": [
      "js",
      "jsx",
      "json",
      "ts",
      "tsx"
    ],
    "transform": {
      "^.+\\.jsx?$": "babel-jest"
    },
    "transformIgnorePatterns": [
      "./node_modules/(?!(lodash-es))"
    ],
    "setupFiles": [
      "./internals/scripts/CheckBuiltsExist.js"
    ]
  },

添加测试文件

在test目录下面添加一个test.ts文件 (文件名自己顺便写的)

import {isAuthorized} from '../../app/modules/util';



describe('isAuthorized', () => {
  
  const user = [];
  const def = ['****','***'];
  test('第一种情况', () => {
    expect(isAuthorized(def, user)).toEqual(true);
  });
  test('第二种情况', () => {
    expect(isAuthorized(false, user)).toEqual(false);
  });
});

运行

有的项目直接运行可能会提示你需要先build
那就先运行yarn build
然后运行jest的脚本
在WebStorm 里面直接点击这个地方就可以运行
在这里插入图片描述

可能会遇到的问题

如果jest无法运行起来可能是因为不支持import *** from *** 这种导入方式
需要对babel进行配置
一个简单的解决方法是在根目录添加一个.babelrc的文件
添加下面的代码就行了

{
    "presets":[
        [
            "@babel/preset-env",{
                "targets":{
                    "node":"current"
                }
            }
        ]
    ]
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值