UI-router干扰了$httpbackend的单元测试,angular js。

8 浏览
0 Comments

UI-router干扰了$httpbackend的单元测试,angular js。

这是一个带有提交功能的控制器:

$scope.submit = function(){

$http.post('/api/project', $scope.project)

.success(function(data, status){

$modalInstance.dismiss(true);

})

.error(function(data){

console.log(data);

})

}

}

这是我的测试:

it('提交时应该向/api/project发送POST请求,并在成功后关闭模态框', function() {

scope.submit();

$httpBackend.expectPOST('/api/project').respond(200, 'test');

$httpBackend.flush();

expect(modalInstance.dismiss).toHaveBeenCalledWith(true);

});

我遇到的错误是:

Error: Unexpected request: GET views/appBar.html

views/appBar.html是我的templateUrl:

.state('project', {

url: '/',

templateUrl:'views/appBar.html',

controller: 'ProjectsCtrl'

})

所以一些原因导致ui-router将我的$httpBackend指向这个路径,而不是我的submit函数。我在使用$httpBackend的所有测试中都遇到了相同的问题。

是否有解决方案?

0