Jest - mockReturnValue

eqoofvh9  于 11个月前  发布在  Jest
关注(0)|答案(1)|浏览(127)

我有一个函数,我试图添加单元测试。

功能

async getStuff() {
           const { foo } = this.props.data;
           const { bar } = this.state;
           const { bazz } = this.props;

           const { x, y } = await helpers.getStuffFromServer(foo, bar, bazz);

           this.setState({ x, y });
        }

字符串

测试

it('should get stuff & set state', async() => {
           const returnObject = {
               x: dummyData.x,
               y: dummyData.y
           };
           getStuff.mockReturnValue(() => returnObject);
           const fakeBazz = jest.fn();
           const wrapper = setup({ bazz: fakeBazz });
           wrapper.instance().componentDidMount();
           await expect(getStuff).toBeCalledWith(dummyData.foo, bar, fakeBazz);
           console.log(wrapper.state());
    });


我的expectAssert工作,正确地AssertgetStuff被正确的值调用。但是getStuff返回2个x对象xy-它用于setState。我试图模拟getStuff的返回值,但是这些模拟的返回值没有在状态中设置。
我是否正确使用了mockReturnValue

ruoxqz4g

ruoxqz4g1#

你不应该在mock函数上设置它吗:

fakeBazz.mockReturnValue(returnObject);

字符串
参见:https://medium.com/@rickhanlonii/understanding-jest-mocks-f0046c68e53c

相关问题