【发布时间】:2016-08-15 20:59:37
【问题描述】:
我正在使用 Karma 和 Jasmine 对我的应用程序中的 angular 模块运行单元测试。我遇到了使用 httpBackend.flush(); 的问题在标题中抛出错误。我已经尽我所能进行了研究,但我只能找到不同 angular/mocks 版本的问题。
我的版本如下:
- 角 - 1.3.16
- 角度模拟 - ^1.3.15
- PhantomJS - ^1.9.17
版本号真的那么具体吗?
这是我的测试:
it('it returns address search results properly.', function() {
$httpBackend.when('GET', strTestAddressApiURL).respond(httpResponse_AddressResults);
$scope.firstname = 'Jon';
$scope.lastname = 'Watson';
$scope.street = '102 2nd Ave';
$scope.postalcode = '81144';
$scope.findBy = 'address';
$scope.submit(true);
$httpBackend.flush();
expect($scope.data[0].accountnumber).toBe('2422101405');
expect($scope.data[0].firstname).toBe('Jon');
expect($scope.data[0].lastname).toBe('Watson');
expect($scope.data[0].email).toBe('jwatson@fh.org');
expect($scope.data[0].address).toBe('102 2nd Ave');
expect($scope.data[0].postalcode).toBe('81144');
expect($scope.data[1].accountnumber).toBe('2422113499');
expect($scope.data[1].firstname).toBe('Joan');
expect($scope.data[1].lastname).toBe('Watson');
expect($scope.data[1].email).toBe('joan@fh.org');
expect($scope.data[1].address).toBe('102 2nd Ave');
expect($scope.data[1].postalcode).toBe('81144');
});
这是来自控制器的 $scope.submit
$scope.submit = function(isValid) {
$scope.submitted = true;
if(!isValid) {
return;
} else {
if($scope.findBy == 'email') {
var validEmail = RegExp('[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}');
if(!validEmail.test($scope.email)) {
$scope.findaccount.email.$invalid = true;
return false;
}
}
}
【问题讨论】:
-
显示
$scope.submit。 -
@HamletHakobyan 已更新 :-)
-
那么,实际的
$http调用在哪里?
标签: javascript angularjs unit-testing karma-jasmine