【发布时间】:2019-08-12 16:32:17
【问题描述】:
多年来,我一直在努力尝试用 Jest 测试这种方法,在线搜索似乎没有帮助。我想我需要重构这个方法,但我不确定如何以可测试的方式来做。
class EmailPage extends Component {
...
async onSubmit(values, applicaitonId) {
try {
this.setState({ loading: true });
const response = await sendEmail(this.formatEmailValues(values), applicaitonId);
console.log(response)
this.setState({ loading: false });
if (response.status !== 'error') {
this.props.history.push('/dashboard');
} else {
alert(
`Something was wrong with your email. Error: ${response.message}`
);
}
} catch (error) {
console.error('Error while sending email!');
console.error(error);
this.setState({ loading: false });
}
}
...
}
有什么想法吗?
【问题讨论】:
-
您可以模拟 sendEmail 函数并使其在测试期间拒绝并解决
标签: javascript reactjs ecmascript-6 jestjs enzyme