我们如何在一个阶段中测试state
变量中的更改,这意味着我不仅要测试最终结果,还要测试介于两者之间的结果。
下面是我要测试的代码。
onLogin = () => {
this.setState({ isLoggingIn: true }, () => {
try {
} catch (err) {
// Alert.alert(getString('ERROR'), err.message);
} finally {
this.setState({ isLoggingIn: false });
}
});
}
下面是我的测试代码。
it('should call onLogin callback', () => {
const spy = jest.spyOn(wrapper.instance(), 'onLogin');
const loginBtn = wrapper.find('#login');
loginBtn.props().onPress();
expect(spy).toHaveBeenCalled();
expect(wrapper.instance().state.isLoggingIn).toEqual(false);
// Attempt => Below I've tried
// wrapper.update();
// expect(wrapper.instance().state.isLoggingIn).toEqual(true);
// wrapper.update();
// expect(wrapper.instance().state.isLoggingIn).toEqual(false);
wrapper.instance().state.isLoggingIn
始终为假。如何监视从false
到true
的变化?
答案 0 :(得分:0)
我们如何测试状态变量的变化
我们没有。这样做将:
state
结构:因此即使一切都很好,单元测试也将失败(更多不必要的工作)只需测试render()
结果并与其返回的所有内容进行交互。这样,您就可以测试真正重要的内容。