我需要弄清楚如何测试一个不返回值并且不更改其组件任何状态的组件方法,它所做的只是按下另一个屏幕。
我正在使用玩笑和酶来访问类方法和状态。
这是我要测试的方法(如果可能):
signUp() {
this.props.navigation.push('Signup');
}
答案 0 :(得分:2)
是的,只需为navigation
道具传递一个模拟:
import * as React from 'react';
import { shallow } from 'enzyme';
class SimpleComponent extends React.Component {
signUp() {
this.props.navigation.push('Signup');
}
render() { return null; }
}
test('signUp', () => {
const navigationMock = { push: jest.fn() };
const wrapper = shallow(<SimpleComponent navigation={navigationMock}/>);
wrapper.instance().signUp();
expect(navigationMock.push).toHaveBeenCalledWith('Signup'); // Success!
});