我有一个函数,我试图添加单元测试。
功能
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
Assert工作,正确地AssertgetStuff
被正确的值调用。但是getStuff
返回2个x对象x
和y
-它用于setState
。我试图模拟getStuff
的返回值,但是这些模拟的返回值没有在状态中设置。
我是否正确使用了mockReturnValue
?
1条答案
按热度按时间ruoxqz4g1#
你不应该在mock函数上设置它吗:
字符串
参见:https://medium.com/@rickhanlonii/understanding-jest-mocks-f0046c68e53c