在使用 jest 进行单元测试时,如何编写代码覆盖然后捕获函数内的 Promise 函数?请看下面的代码。服务.jsexport const userLogin = data => { return AjaxService.post( "http://localhost/3000/signin", data ).then( res => { return res.data; }, error => { return error.response.data; } );};AjaxService.jsexport const AjaxService = { post: (url, data, headers) => { return axios({ method: "POST", url: url, headers: headers || { "content-type": "application/json" }, data: data }); }}示例.jsclass Login extends Component { handleSubmit = (event) => { if (this.props.handleSubmit) this.props.handleSubmit(); this.setState({isLoggedIn: true}) userLogin().then((res) => { // when promise resolve var response = res; }, (err) => { // when promise reject var error = err; }) } render() { return ( <form id="login-form" onSubmit={(e) => this.handleSubmit(e)} > <input type="username" /> <input type="password" /> <button type="submit">Login</button> </form> ) }}示例.test.jsit("test login form submit ", () => { wrapper = shallow(<Login />); let instance = wrapper.instance(); // get class instance instance.handleSubmit(); // will trigger component method let actualVal = wrapper.state().isLoggedIn; // get state key value expect(true).to.eql(actualVal); });--coverage在 Jest 中使用生成覆盖率报告后我们可以看到 promise 成功和错误函数中的代码没有作为单元测试的一部分被覆盖。所以请帮忙介绍一下。谢谢。
添加回答
举报
0/150
提交
取消