gpt4 book ai didi

reactjs - Jest/ enzyme |在 componentDidMount 中测试函数调用

转载 作者:行者123 更新时间:2023-12-03 13:56:12 24 4
gpt4 key购买 nike

当您想测试 componentDidMount() 上的函数被调用时该怎么做React 生命周期方法。基本上组件代码如下所示:

  state = {
randomStateToPopulate: []
};

// Test componentDidMount
componentDidMount() {
this.randomFunction();
}

randomFunction= () => {
listRandomData().then(({ data }) => {
this.setState({ randomStateToPopulate: data });
});
};

那么,如何实际测试这个案例?

最佳答案

这是您要测试的案例场景。如果正在调用 componentDidMount,请检查它是否仅被调用一次,或者您想要的次数。

你的测试。 我在下面的评论中有解释

    // Inside your general `Describe`
let wrapper;
const props = {
// Your props goes here..
};
beforeEach(() => {
wrapper = shallow(<YourComponent {...props} />);
});

it('should check `componentDidMount()`', () => {
const instance = wrapper.instance(); // you assign your instance of the wrapper
jest.spyOn(instance, 'randomFunction'); // You spy on the randomFunction
instance.componentDidMount();
expect(instance.randomFunction).toHaveBeenCalledTimes(1); // You check if the condition you want to match is correct.
});

你可以抽象这个案例来做更复杂的事情,但它的基本要点就是上面的一个。如果您有更详细或者更好的解决方案,欢迎留言。谢谢!!

关于reactjs - Jest/ enzyme |在 componentDidMount 中测试函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54942892/

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