【发布时间】:2016-04-14 15:02:44
【问题描述】:
这是一个带有提交功能的控制器:
$scope.submit = function(){
$http.post('/api/project', $scope.project)
.success(function(data, status){
$modalInstance.dismiss(true);
})
.error(function(data){
console.log(data);
})
}
}
这是我的测试
it('should make a post to /api/project on submit and close the modal on success', 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 指向这个而不是我的提交函数。我在所有使用 $httpBackend 的测试中都遇到了同样的问题。
有什么解决办法吗?
【问题讨论】:
-
相关 UI-Router 问题 #212 以及一些解决方法:github.com/angular-ui/ui-router/issues/…
标签: javascript angularjs angular-ui karma-runner angular-ui-router