javascript - 在单元测试中覆盖匿名函数参数

标签 javascript react-native mocha.js chai jestjs

我在代码中有多种情况,我们在创建对象时将函数作为参数传递(例如在 onPress 中):

<Touchable
  onPress={() => Linking.openURL(formatUrl(url))} 
  noContainer={true}>      
    {children}
</Touchable>

归根结底,这是渲染更大组件中的一个片段。因为它实际上不是组件的方法,所以我对在这里测试它并不特别感兴趣——如果需要,它将作为另一个组件的一部分进行测试。 Code Coverage 但是,代码覆盖率报告返回并指示该函数未被覆盖。

有没有办法满足这种覆盖率——要么​​通过测试这个函数,要么忽略所有以这种方式传递的函数(匿名,作为参数)?

最佳答案

假设您使用的是 Jest,您可以将 Jest 模拟设置为调用它接收的参数,因此:

const componentProps = {
  onPress: jest.fn(func => func());
}

因此,在这种情况下,模拟的 onPress 函数将接收您的匿名函数并调用它。覆盖将显示调用了匿名函数。

希望对您有所帮助:)

关于javascript - 在单元测试中覆盖匿名函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45036345/

相关文章:

javascript - toExpontial 在 React Native 中未定义

javascript - React-native-camera 没有出现在屏幕上

testing - Botium 信息可用,但设置 Botium 的 alexa 技能起点的快乐路径是什么

javascript - 如何使用 javascript 仅将目标 ="_blank"添加到某些链接?

javascript - Visual Studio 2013 JS HTML 模板

android - React native custom view meet 没有 propType 问题

javascript - 为单元测试服务 worker 设置 JSDOM navigator.serviceWorker

mocha.js - chai-http 运行测试后不退出

javascript - 如何从 Cordova 应用程序中的字节数组下载任何文件?

javascript - 我试图在 javascript 中创建一个简单的函数来添加两个数字,但结果没有显示,