繁体   English   中英

如何在 React Native 中使用 jest for constant 开始单元测试

[英]How to Start Unit Testing in React Native using jest for constant

我是单元测试的新手,目前正在使用 Jest 为我的 TypeScript 应用程序编写单元测试。 我正在使用一个名为common-packages的自定义 package 我存储所有常量,像这样简单

const CLIENT_ID = 1231123123;
const TEXT = {
  Discover:"Discover",
  loading: 'loading',
  Type: "Testing",
}
const Constants = {
  TEXT,
  CLIENT_ID,
} as const;

export default Constants;

在我的 package 上,index.tsx。 我导出Constant

export { default as Constants } from "./constants";

而我想测试的function就是这个

import {Constants} from 'common-packages';

export const lockNextCardIfUncompleted = (data: any[]) => {
  if (data.length !== 0) {
    const locked = data.filter((e: any) => e.Type === Constants.TEXT.Type );
    if (locked.length === 0) return false;
    return true;
  }
  return false;
};

我已经尝试像这样为 lodash 编写单元测试并且它正在工作

const lodash = require('lodash')
test("repeat", () => {
expect(lodash.repeat("A",3)).toBe("AAA");
})

但是对于具有 common-packages 的单元测试,它失败了

import {
  lockNextCardIfUncompleted,
} from './fileName';

test('should return locked', () => {
  expect(
    lockNextCardIfUncompleted([
      {
        Type: 'A',
      },
    ]),
  ).toBe(false);
  expect(
    lockNextCardIfUncompleted([
      {
        Type: 'Testing,
      },
    ]),
  ).toBe(true);
});

它返回TypeError: Cannot read property 'TEXT' of undefined 所以测试没有从common-package识别常量。 有人可以帮我解决这个问题吗? 谢谢你

您正在使用Default Exports ,而不是Named Exports

所以你需要像这样导入常量:

import Constants from 'common-packages';

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM