我试图在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相关的错误,所以我认为这是由于测试。
有没有人有类似的问题?
或者,如果你得到关于做什么或调查怀疑的建议,我会很高兴。
*虽然句子可能不错,但请原谅。 (大于;&LT ;;)
答案 0 :(得分:1)
可能是因为Toast加载的时刻,它试图访问只在生产运行时(而不是测试运行时)中设置的对象。如果你按照你正在测试的模块的依赖图,你会发现某些东西试图加载Toast。
您可能希望阻止Toast模块运行,因此它不会尝试访问未定义对象上的变量。您可以使用manual mocks或使用moduleNameMapper将react-native-simple-toast
映射到存根来执行此操作。