RN—单元测试框架

1、安装

npm install --save-dev jest @types/jest ts-jest

2、确保package.json中存在配置

  "scripts": {
    "android": "react-native run-android",
    "ios": "react-native run-ios",
    "lint": "eslint .",
    "start": "react-native start",
    "test": "jest"
  },

3、配置jest.config.js

确认项目根目录中存在jest.config.js的配置文件,如果不存在请自行创建,内容如下:

module.exports = {
  preset: 'react-native',
  transform: {
    '^.+\\.(ts|tsx)$': 'ts-jest',
  },
  testEnvironment: 'node'
};

上面的内容是ts的相关配置,从rn 0.83开始系统默认使用ts。

4、在项目根目录创建单元测试目录及单元测试类

目录结构如下:

文件AESUtils.test.ts内容如下:

import { AESUtils } from "../rn/utils/AESUtils";

describe('',() => {
    test("测试aes的加解密", () => {
        const aesUtils = new AESUtils();
        const srcString = "乔乔";

        //获取aeskey
        const aesKey = aesUtils.generateAESKey();

        //加密
        const encryptString = aesUtils.encrypt(srcString,aesKey);
        //解密
        const decryptString = aesUtils.decrypt(encryptString,aesKey);

        expect(srcString).toBe(decryptString);
    })
});

运行测试

#运行全部单元测试
npm test

#指定运行某个测试文件
npm test --AESUtils.test.ts