fah*_*cht 5 reactjs jestjs react-native
我正在用 jest 测试 react-native 组件,我经常在我的风格中使用这样的东西:
import { StyleSheet, Platform } from 'react-native';
export default StyleSheet.create({
container: {
paddingTop: Platform.OS === 'ios' ? 30 : 10,
}
});
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是,在 jest 测试Platform.OS中总是'ios'这意味着 android 分支没有得到测试。
这让我觉得我可以通过一个玩笑配置来改变它,但因为我不想全局改变它,但在每个测试的基础上,这无论如何都没有意义。
尝试将其添加到测试文件的顶部。
jest.mock('Platform', () => {
const Platform = require.requireActual('Platform');
Platform.OS = 'android';
return Platform;
});
const Platform = require('Platform');
Run Code Online (Sandbox Code Playgroud)
您可能需要为 iOS 创建一个不同的文件,但是您在模拟中设置的任何平台都将适用于您的测试规范文件。
| 归档时间: |
|
| 查看次数: |
2212 次 |
| 最近记录: |