gpt4 book ai didi

react-native - 如何通过 react 导航实现 Jest 单元测试

转载 作者:行者123 更新时间:2023-12-03 14:20:53 27 4
gpt4 key购买 nike

我目前正在为 react 导航添加玩笑单元测试,例如:
我的StackNavigator

const Nav = StackNavigator({
Home: {
screen: Home,
},

Second: {
screen: Second,
}
});

export default class App extends Component<{}> {
render() {
return (
<Nav/>
);
}
}

我的家庭组件
export default class Home extends Component<{}> {

_goToNextPage = () => {
this.props.navigation.navigate('Second');
}

render() {
return (
<View>
<Text>Home</Text>
<Button
onPress={this._goToNextPage}
title="Go to Second Page"
>Click to next page</Button>
</View>
);
}
}

我的第二部分
导出默认类Second扩展Component <{}> {
render() {
return (
<View>
<Text>Second</Text>
</View>
);
}

}

我应该如何编写玩笑的单元测试来测试“当我单击GoToNextPage按钮时,第二个组件应该正确呈现?”

我没有找到有关带 react 导航的玩笑的任何有用信息,我们将不胜感激!

非常感谢〜

最佳答案

我个人喜欢 @testing-library/react ,因为他们围绕用户角度进行测试的理念。我想您的测试将如下所示:

it('shows the second component when the next button is clicked', async () => {
// Renders your app
const { getByText, findByText } = render(<App />);
// Clicks your button
fireEvent.click(getByText('Click to next page'));
// Waits for the 'Second' text to be visible, could be async or sync, in this
// case I'm using the async expectation style
await wait(() => expect(getByText('Second')));
});

我将通过简单地呈现第二个组件并将其与您的快照进行比较,从而将按钮的单击与按钮能否正确显示的验证分开来进行测试。

// inside your second component test - still using testing-library
it('matches the snapshot', () => {
expect(render(<Second />).container).toMatchSnapshot();
});

关于react-native - 如何通过 react 导航实现 Jest 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47466121/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com