jest测试ajax,reactjs – 如何在JEST中模拟$.ajax调用

这篇博客讨论了作为React新手如何在JEST框架中编写单元测试,特别是针对包含AJAX调用和重定向逻辑的代码。作者遇到一个测试错误,期望$.ajax被正确调用但测试失败。寻求帮助找出单元测试脚本中的问题。
摘要由CSDN通过智能技术生成

我是React&的新手JEST框架,我尝试在响应中执行ajax调用,如下所示,如果我收到成功数据,它将重定向到主页,否则会显示错误消息.

let params ={

userName : this.state.userName,password : this.state.passWord

};

$.ajax({

url: '/reactApp/login',dataType: 'json',contentType: 'application/json;',type: 'POST',data: JSON.stringify(params),success: function (successData) {

if (typeof(Storage) !== "undefined") {

localStorage.setItem('userProfile',JSON.stringify(successData));

browserHistory.push('/reactApp/Home');

} else {

alert("The browser version is not supported.Please use Internet explorer 11,Chrome or firefox.")

}

}.bind(this),error: function(errorData){

this.setState({

errorMessage: errorData.message,errorDisplay: true,});

}.bind(this);

反应代码正在工作,我试图在JEST中为ajax调用的上述代码编写一个单元测试,

jest.unmock('jquery');

jest.unmock('./AjaxLogin');

var $= require('jquery');

const Login = TestUtils.renderIntoDocument();

expect(Login).toBeDefined();

var handleClick = jest.genMockFunction();

var button = TestUtils.findRenderedDOMComponentWithTag(Login,'button');

TestUtils.Simulate.click(button);

Login.handleClick();

expect($.ajax).toBeCalledWith({

url: '/reactApp/login',data: JSON.stringify({userName : 'testing',password : 'password'}),success: jasmine.any(Function),error: jasmine.any(Function)

});

当我运行此测试用例时,我收到以下错误消息,我不知道上面的代码有什么问题.

预期使用Object调用的函数

谁能帮助我在单元测试脚本中找出问题.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值