- 第1节:React 入门
- 第2节:React 安装 Android 运行环境
- 第3节:React Native 样式
- 第4节:React Native 手势应答系统
- 第5节:React Native 辅助功能
- 第6节:React Native 模块(iOS)
- 第7节:React Native UI 组件(iOS)
- 第8节:React Native UI 组件(Android)
- 第9节:React Native 调试 React Native 应用
- 第10节:React Native 测试
- 第11节:React Native 在设备上运行
- 第12节:React Native 在设备上运行(Android)
- 第13节:React Native 与现有的应用程序集成
- 第14节:React Native JavaScript 环境
- 第15节:React Native 已知 Issues
- 第16节:React Native iOS 活动指示器
- 第17节:React Native iOS 日期选择器
- 第18节:React Native DrawerLayoutAndroid
- 第19节:React Native 图片
- 第20节:React Native 列表视图
- 第21节:React Native Map 视图
- 第22节:React Native 导航器
- 第23节:React Native iOS 导航器
- 第24节:React Native iOS 选择器
- 第25节:React Native ProgressBarAndroid
- 第26节:React Native 滚动视图
- 第27节:React Native iOS 滑块
- 第28节:React Native SwitchAndroid
- 第29节:React Native iOS 开关
- 第30节:React Native iOS 选项卡
- 第31节:React Native TabBarIOS.Item
- 第32节:React Native 文本
- 第33节:React Native 文本输入
- 第34节:React Native ToolbarAndroid
- 第35节:React Native 高亮触摸
- 第36节:React Native 不透明触摸
- 第37节:React Native 无反馈触摸
- 第38节:React Native 视图
- 第39节:React Native Web 视图
- 第40节:React Native iOS 警告
- 第41节:React Native 应用程序注册表
- 第42节:React Native iOS 应用程序状态
- 第43节:React Native 异步存储
- 第44节:React Native BackAndroid
- 第45节:React Native 相机滚动
- 第46节:React Native 交互管理器
- 第47节:React Native 动画布局
- 第48节:React Native iOS 链接
- 第49节:React Native 网络信息
- 第50节:React Native 全景响应器
- 第51节:React Native 像素比率
- 第52节:React Native iOS 推送通知
- 第53节:React Native iOS 状态栏
- 第54节:React Native 样式表
- 第55节:React Native ToastAndroid
- 第56节:React Native iOS 震动
- 第57节:React Native Flexbox
- 第58节:React Native 定位
- 第59节:React Native 网络
- 第60节:React Native 计时器
React Native 测试
运行测试和贡献
React Native 回购有几个你可以运行的测试,来验证你没有用PR引起拟合。这些测试是用 Travis 持续集成系统运行的,并自动的向你的 PR 发布结果。你也可以在 IntegrationTest 和在 Xcode 中的 UIExplorer 应用中,使用 cmd+U 本地运行。您可以通过在命令行的 npm test
运行 jest 测试。但是我们目前还没有很大的测试覆盖率,所以大多数的变化仍将需要大量手工验证,但如果你想帮助我们提高我们的测试覆盖率,我们是非常欢迎的!
Jest 测试
Jest 测试是 JS-only 测试,运行在节点命令行上。测试位于它们测试的文件 __tests__
目录中,还有一个对不是位于故障隔离和最大速度测试下的积极模拟功能的强调。你可以用来自 react-native 根的 npm test
运行现有的 React Native jest 测试,并且我们鼓励你为你想做出贡献的任何组件添加你自己的测试。基本示例请看 getImageSource-test.js
。
集成测试
React Native 提供设施,使测试需要 native 和 JS 组件进行跨桥交互的集成组件更容易。两个主要组件是RCTTestRunner
和 RCTTestModule
。RCTTestRunner
设置了 React Native 环境并提供设备运行测试,正如在 Xcode 中的 XCTestCase
(runTest:module
是最简单的方法)。RCTTestModule
和 TestModule
一样,通过 NativeModules
被导出到 JS 中。测试写在 JS 中,当它们完成时,必须调用 TestModule.markTestCompleted()
,否则测试将超时失败。测试失败主要是通过抛出异常表示。它还可以用 runTest:module:initialProps:expectErrorRegex:
或runTest:module:initialProps:expectErrorBlock:
测试错误条件,它预计抛出一个错误并验证错误与提供的标准相匹配。对于例子的使用,请看 IntegrationTestHarnessTest.js
和 IntegrationTestsTests.m
。
快照测试
常见的一种集成测试是快照测试。这些测试渲染一个组件,并使用 TestModule.verifySnapshot()
验证参考图像的屏幕快照,在幕后使用 FBSnapshotTestCase
库。参考图像通过在 RCTTestRunner
中设置 recordMode = YES
被记录下来,然后运行测试。快照在 32 位和 64 位系统中略有不同,且在不同的操作系统版本中也有所不同,所以建议你使用正确的配置运行测试。同时强烈建议所有网络数据被模拟,以及其他潜在的麻烦的依赖性。基本示例请看SimpleSnapshotTest
。