首页 > 解决方案 > React-Navigation:StackActions.pop 不能被模拟,因为它不是一个函数

问题描述

我正在尝试模拟from的pop函数,以便可以使用 jest 对其进行测试,但不知何故它会抛出错误StackActionreact-navigation

import { StackActions } from 'react-navigation'

const popSpy = jest.spyOn(StackActions, 'pop')

错误说

Cannot spy the pop property because it is not a function; undefined given instead

当我尝试在控制台中打印 StackActions 对象时,它只显示pushresetreplace

在此处输入图像描述

标签: react-nativejestjsreact-navigation

解决方案


看起来您已经在StackActions属性列表不完整的地方模拟了对象,因为日志中的所有方法都是模拟函数。

所以问题是无论你在哪里模拟它,你都需要添加缺少的方法。

但是,模拟StackActions方法没有意义。他们只返回对象,不做任何其他事情。您可能想模拟navigation.pop/ navigation.dispatch。但这与这个问题无关。


推荐阅读