Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 延迟资源业力测试中的承诺_Javascript_Angularjs_Karma Runner - Fatal编程技术网

Javascript 延迟资源业力测试中的承诺

Javascript 延迟资源业力测试中的承诺,javascript,angularjs,karma-runner,Javascript,Angularjs,Karma Runner,目前,我正在使用ngResource进行RESTful API调用,并使用KARMA&jasmine进行单元和集成测试。 在一个控制器内,我有一个期望完成承诺的功能: var elem = new Element() // calling a ngResource Factory elem.$save().then(function () { $scope.elem.push(elem); }); 在我的karma测试中,我测试列表是否为空,调用上面的函数并检查$scope.

目前,我正在使用ngResource进行RESTful API调用,并使用KARMA&jasmine进行单元和集成测试。 在一个控制器内,我有一个期望完成承诺的功能:

var elem = new Element() // calling a ngResource Factory    

elem.$save().then(function () {
    $scope.elem.push(elem);
});
在我的karma测试中,我测试列表是否为空,调用上面的函数并检查
$scope.elem
数组是否有新创建的元素。但既然这是一个承诺,业力测试并不能解决这个问题。我尝试使用$rootScope.apply(),但是$httpBackend希望我定义很多调用,这是应该的。但我只想模拟一下通话


有什么优雅的解决方案吗?

没有优雅的解决方案。测试的主要目的是为测试准备“隔离”生态系统。如果您想测试ajax调用,它们必须返回一些内容。你不能测试和仅仅告诉“跳过这个承诺,假装它是成功的”

当你需要解决任何承诺时,我会用这个

  $httpBackend.flush();
  $rootScope.$apply();
这将调用$httpBackend,当然它也将调用。你别无选择

1.)模拟所有后端调用(这是从我的测试中获取的)

因此,当头中的授权令牌未定义时,它将使用http 200在请求主机/me上使用伪json进行响应


2.)第二种选择,在nodejs/express内创建可模拟的后端,并使用JSON模拟所有请求。在开始jasmine测试之前,您还将启动这个“假”后端服务器。

没有优雅的解决方案。测试的主要目的是为测试准备“隔离”生态系统。如果您想测试ajax调用,它们必须返回一些内容。你不能测试和仅仅告诉“跳过这个承诺,假装它是成功的”

当你需要解决任何承诺时,我会用这个

  $httpBackend.flush();
  $rootScope.$apply();
这将调用$httpBackend,当然它也将调用。你别无选择

1.)模拟所有后端调用(这是从我的测试中获取的)

因此,当头中的授权令牌未定义时,它将使用http 200在请求主机/me上使用伪json进行响应


2.)第二种选择,在nodejs/express内创建可模拟的后端,并使用JSON模拟所有请求。在开始jasmine测试之前,您还将启动此“假”后端服务器。

您正在使用jasmine吗?你在使用什么样的单元测试框架?是的,我在使用jasmine。添加到描述中你在用茉莉花吗?你在使用什么样的单元测试框架?是的,我在使用jasmine。添加到描述中