小编Sud*_*han的帖子

如何在包含 useIsFocussed() 导航钩子的 jest/enzyme 中测试 react-native 文件?

我在 react-native 中创建了一个容器,并在屏幕上添加了动画。为了检查屏幕是否聚焦,我使用了 @react-navigation/native 库中的 useIsFocussed 钩子。

const isFocused = useIsFocused()
  useEffect(() => {
    if (isFocused) {
      pulse()
    } else {
      posAnim.setValue({ x: Width, y: 0 })
      fadeModal.setValue(0)
      posModal.setValue({ x: 0, y: (50 / 812) * Height })
    }
  }, [isFocused])
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,如果布尔值 isFocused 为 true,则动画有效,如果为 false(屏幕未聚焦),则动画组件会重置。我也在使用 jest/enzyme 测试这个屏幕。下面是屏幕测试的代码

const createTestProps = () => ({
  navigation: {
    navigate: jest.fn()
  }
})
describe('Screen', () => {
  let wrapper
  let props
  beforeEach(() => {
    props = createTestProps({})
    wrapper = shallow(<Screen {...props} />) // …
Run Code Online (Sandbox Code Playgroud)

javascript jestjs react-native enzyme react-navigation

5
推荐指数
2
解决办法
1922
查看次数