You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native中如何进行Jest测试?sum函数测试报错求助

解决TypeError: sum is not a function的问题

嘿,我一眼就看出问题所在啦!你的sum函数是定义在App组件内部的私有函数,根本没对外导出,而测试文件里你直接把整个App组件当成sum函数来用,这可不就报错了嘛😉

具体修改步骤:

1. 调整App.js,导出sum函数

把sum从组件内部抽出来单独导出,这样测试文件就能正确获取到它:

// 先定义并导出sum函数
export function sum(a, b) {
  alert(a + b);
  return a + b;
}

const App: () => React$Node = () => {
  return (
    <>
      <Button title="Sum" onPress={() => {sum(1,2)}} />
    </>
  );
}

export default App;

2. 修改测试文件App-test.js,正确导入sum

原来的require拿到的是整个App组件,现在改成解构导入单独的sum函数:

import 'react-native';
import { sum } from '../App';

test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});

这样修改后,你再运行npm test就能顺利通过测试啦,而且安卓端的弹窗功能完全不受影响——组件内部还是能正常调用sum函数~

内容的提问来源于stack exchange,提问作者Boidurja Talukdar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 18:58:12