Jest - mockReturnValue

时间:2018-03-28 08:42:14

标签: jestjs

我有一个功能,我试图为其添加单元测试。

功能

    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());
});

我的expect断言有效且正确断言getStuff被调用了正确的值。但getStuff会返回2 x个对象x& y - 它用于setState。我试图模拟getStuff的返回值,但是这些模拟的返回值没有在状态中设置。

我正确使用mockReturnValue吗?

1 个答案:

答案 0 :(得分:2)

您不是应该在模拟功能上设置它吗?

fakeBazz.mockReturnValue(returnObject);

请参阅:https://medium.com/@rickhanlonii/understanding-jest-mocks-f0046c68e53c