我正在尝试在JavaScript上用茉莉花测试功能,但是我有一个问题,我还没有找到任何信息来测试$.post或$.get函数,因为我使用的是完成的($.延迟)(异步)不知道如何处理.代码如下
function registrarUsuario(cel, eMail, nombre){
$.post(url, {
phone_number : cel,
email : eMail,
name : nombre
}).done(exitoso(data))}
问题是,如何使用茉莉花测试$.post或$.get函数,并使用jqXHR的done函数.
函数exitoso(data)如下:
function exitoso(data){
navigator.notification.alert('User register',
alertDismmissed(nombre, eMail, cel),
'Sucess');}
我的数据错误引用存在错误的原因,但是我不得不按如下方式更改代码$.post(…).done
.done(function(data){
exitoso(data);
}
或者也可以从事以下工作:
.done(
出口
);
感谢AndreasKöberle的回答.
解决方法:
因此,您可以监视$.post并返回递归的已解决问题:
var dfr = new $.Deferred();
dfr.resolve({data: "data"})
jasmine.spyOn($, 'post').andReturn(dfr)
registrarUsuario()
另一个解决方案是使用sinonJs的fakeServer:
this.server = sinon.fakeServer.create();
this.server.respondWith('{data: "data"}');
server.autoRespond = true;
registrarUsuario()