如何使用 Jest 正确测试和模拟 react-native-safe-area 模块?

时间:2021-06-24 12:22:06

标签: react-native jestjs ts-jest

我正在学习测试,因此我面临着为其创建测试的基本困难... 不确定是因为库是异步的还是因为在组件初始化时有一个查询调用。也许有人可以帮助我?

这是我的测试文件

import 'react-native';
import React from 'react';
import {Welcome} from '../src/scenes'

import renderer, { act, create } from 'react-test-renderer';

// Is this the correct way ?
jest.mock('react-native-safe-area', () => ({
safeAreaInsets: {
    top:0,
    bottom:0
}
}));
describe('Welcome Page', () =>{
it('must invoke signUp', () =>{
    const component = create(<Welcome navigation={() =>{}} />);
    expect(component.toJSON()).toMatchSnapshot();
    act(() =>{
        component.root.findByProps({testID: 'signUp'}).props.onClick();
    })
});
}) 

欢迎会是这样的...

import React, { useState, useRef, useEffect } from 'react';
import { View, Text, Image, Animated, TouchableOpacity } from 'react-native';
import styles from './styles';
import SafeArea from 'react-native-safe-area';

function Welcome() {
  const [safeTop, setSafeTop] = useState(0)
  
SafeArea.getSafeAreaInsetsForRootView()
    .then((result) => {
        console.log(result)
        setSafeTop(result.safeAreaInsets.top)
    })
return (<View />)

} 导出默认欢迎

0 个答案:

没有答案