Javascript 模拟角度模型的$http.put结果-单元测试
我有这个测试: 测试: 模型角度:Javascript 模拟角度模型的$http.put结果-单元测试,javascript,angularjs,unit-testing,jasmine,angular-mock,Javascript,Angularjs,Unit Testing,Jasmine,Angular Mock,我有这个测试: 测试: 模型角度: function iniciarEntrevista(id) { var _this = this; return $http .put(this.urlEntrevistaPorId, { estudoId: idEstudo, entrevistaId: id }) .success(function (result) {
function iniciarEntrevista(id) {
var _this = this;
return $http
.put(this.urlEntrevistaPorId, { estudoId: idEstudo, entrevistaId: id })
.success(function (result) {
if (result.Iniciada) {
_this.setEntrevista(result.Entrevista, result.PaginaAtual);
return true;
}
else {
return false;
}
});
}
调用Questionario.iniciarEntrevista并等待调用SetEntervista。但由于$http.put的返回,因此未调用此方法
我需要结果。伊尼西亚达是真实的
我如何模仿它?使用它的一种方法是使用 这里还有一些例子,基本上是在测试控制器中注入$httpBackend,并将其映射到请求。你在提供的链接中有一些例子,我认为这是直接从这里开始的
还有一个plunker链接。使用它的一种方法是使用 这里还有一些例子,基本上是在测试控制器中注入$httpBackend,并将其映射到请求。你在提供的链接中有一些例子,我认为这是直接从这里开始的 还有一个plunker链接。我找到了 只是在$httpBackend.expectPUT上添加了一行Iniciada:true 谢谢大家 我明白了 只是在$httpBackend.expectPUT上添加了一行Iniciada:true
谢谢大家 尝试将200代码添加到响应中。如下:.respond(200,{})我发现用
spyOn($http,'post')和.returnValue($q.when(myData))模拟$http对象更容易代码>它看起来像是响应处理程序中的if(result.Iniciad)
条件可能是问题所在。当收到响应时,您正在检查此属性,但您似乎没有在模拟响应数据中传递该属性。请尝试将200代码添加到响应中。如下:.respond(200,{})我发现用spyOn($http,'post')和.returnValue($q.when(myData))模拟$http对象更容易代码>它看起来像是响应处理程序中的if(result.Iniciad)
条件可能是问题所在。当接收到响应时,您正在检查该属性,但您似乎没有在模拟响应数据中传递该属性。
function iniciarEntrevista(id) {
var _this = this;
return $http
.put(this.urlEntrevistaPorId, { estudoId: idEstudo, entrevistaId: id })
.success(function (result) {
if (result.Iniciada) {
_this.setEntrevista(result.Entrevista, result.PaginaAtual);
return true;
}
else {
return false;
}
});
}