jest:测试套件无法运行,TypeError:无法读取属性' SHORT'未定义的

时间:2017-04-22 20:12:17

标签: react-native react-redux toast jest

我试图在Jest中编写一个Action Creators测试。

我即将测试的Action Creator在下面..

export function clearPost() {
   return {
      type: CLEAR
   };
 }

此测试代码如下。

const clearPost = require('../../../src/redux/modules/post');
const CLEAR = 'teamhub/post/CLEAR';

describe('actions', () => {
  test('should create an action to clear post', () => {
    const expectedAction = {
      type: CLEAR,
    }
    expect(clearPost).toEqual(expectedAction);
  });
});

当我运行此测试时,得到有关react-native-simple-toast模块的属性SHORT的错误。

但是,由于Toast与测试无关,我不明白为什么会出现这样的错误。

我已经确认即使我运行应用程序也不会发生与Toast相关的错误,所以我认为这是由于测试。

Error message

有没有人有类似的问题?

或者,如果你得到关于做什么或调查怀疑的建议,我会很高兴。

*虽然句子可能不错,但请原谅。 (大于;&LT ;;)

1 个答案:

答案 0 :(得分:1)

可能是因为Toast加载的时刻,它试图访问只在生产运行时(而不是测试运行时)中设置的对象。如果你按照你正在测试的模块的依赖图,你会发现某些东西试图加载Toast。

https://github.com/xgfe/react-native-simple-toast/blob/8d951627aac159ae5886a79f27df06e40c90ba92/index.js#L7-L8

您可能希望阻止Toast模块运行,因此它不会尝试访问未定义对象上的变量。您可以使用manual mocks或使用moduleNameMapperreact-native-simple-toast映射到存根来执行此操作。