资讯动态

react-fake-props API 参考:fakeProps 参数 optional 与 all 选项完整解析

发布时间:2026/8/24 11:20:29 来源:尧图企业网站定制
react-fake-props API 参考fakeProps 参数 optional 与 all 选项完整解析【免费下载链接】react-fake-props Magically generate fake props for your React tests项目地址: https://gitcode.com/gh_mirrors/re/react-fake-propsreact-fake-props是一款能魔法般为 React 测试生成假 props 的工具它通过解析组件的 TypeScript、Flow 或 PropTypes 类型定义自动产出可用的测试数据。本篇 API 参考将完整解析fakeProps的两个核心参数optional与all帮你快速写出干净的组件测试。react-fake-props 是什么简单来说当你需要测试某个 React 组件时通常要手动准备一堆 props。而react-fake-props会根据组件声明的 props 类型自动生成一份看起来就很像真的假数据例如const props fakeProps(componentPath) // { id: 1, name: name } Component {...props} /安装方式任选其一npm install react-fake-props --save-devyarn add react-fake-props --dev 注意fakeProps接收的是组件文件路径而不是组件本身。这样才能解析 TypeScript / Flow / PropTypes 三种类型写法。fakeProps 函数签名两个参数决定一切fakeProps(componentPath[, { optional: false, all: false }])参数类型默认值作用componentPathstring必填组件源文件路径optionalbooleanfalse是否连可选 props也一并生成allbooleanfalse是否解析文件中所有组件含未导出的核心实现在 src/index.js 中参数默认值在第 259 行module.exports function (file, { optional false, all false } {})处定义。optional 选项从只给必填到全部生成默认情况下optional: falsefakeProps只会为标记为必填的 props 生成假值// 只返回 requiredFunc、requiredAny 等 isRequired 的 props const requiredProps fakeProps(componentPath)传入{ optional: true }后所有可选 props 也会被填充进结果对象测试中就能覆盖更完整的渲染分支// 返回包含 optionalString、optionalBool 等全部 props const allProps fakeProps(componentPath, { optional: true })几个值得了解的细节行为可见tests/propTypes.js 中的断言嵌套 shape 同样生效PropTypes.shape内部的可选项也会递归生成例如requiredShape.optionalString会填充为字符串requiredShape.optionalString。字符串假值带前缀嵌套字符串会以父级.子级作为值方便调试时快速定位来源。数量对比开启optional后返回的 key 数量一定多于默认模式官方测试里就有allPropsLength requiredPropsLength的断言。all 选项一个文件多个组件时批量取 props当源文件里定义了多个组件时这是很常见的场景{ all: true }会让fakeProps返回一个数组包含每个组件的displayName和对应的props——即使该组件没有被导出// 返回数组[{ displayName: First, props: {...} }, ...] const components fakeProps(componentPath, { all: true }) // 通过 displayName 挑选目标组件 const target components.find(({ displayName }) displayName First) const props target.props对应的示例文件可参考fixtures/propTypes/Multiple.jsx其中First、Second以及被connect包裹的组件都能被批量解析出来。两个选项组合使用与注意事项optional和all可以叠加使用——返回数组中每个组件的 props 都会包含可选项const components fakeProps(componentPath, { all: true, optional: true })使用前的 3 个提醒 ⚠️自定义校验器和PropTypes.instanceOf不受支持生成的会是提示字符串仍需手动设置正确的值。断言时引用 props 变量而非字面量react-fake-props 的输出可能随版本变化写props.A比写A更稳健。Jest 快照是好搭档官方测试如__tests__/__snapshots__/下的快照文件就是依赖快照来锁定生成结果。小结默认调用fakeProps(path)→ 只生成必填 props{ optional: true }→ 补齐所有可选 props覆盖完整渲染分支{ all: true }→ 批量解析文件中所有组件靠displayName选取目标两者可自由组合搭配 Jest 快照即可获得稳定可维护的组件测试 【免费下载链接】react-fake-props Magically generate fake props for your React tests项目地址: https://gitcode.com/gh_mirrors/re/react-fake-props创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价