Jasmine 应该忽略 post 数据值

Jasmine should ignore post data values

我正在尝试使用 Jasmine 测试我的 angular 应用。 我是这样称呼它的:

$httpBackend
  .expectPOST('http://localhost:3000/booking_requests.json',
    {lat: 58.37, lng: 26.71})
  .respond(201);


sharedProperties.setLatitude(58.37);
sharedProperties.setLongitude(26.71);
scope.submit();
$httpBackend.flush();

这是我在函数中的内容:

$scope.submit = function() {

console.log(sharedProperties.getLatitude());
console.log(sharedProperties.getLongitude());
console.log($scope.formdata.name);


var parameter = JSON.stringify({lng: sharedProperties.getLongitude(), lat: sharedProperties.getLatitude(),
  name: $scope.formdata.name});
console.log(parameter);

$http.post('http://localhost:3000/booking_requests.json',parameter )
  .then(function (response) {
    $scope.sync_notification = response.data.eta;
    $scope.modal.show();
    PusherService.subscribe(response.data.id);
  });
};

错误:

   TypeError: 'undefined' is not an object (evaluating 'response.data.eta')

所以我必须让它忽略我从 post 方法中得到的 json 东西。任何想法或评论将不胜感激。

作为响应,您返回单个值,而在实际函数中,您从对象中检索值。

测试用例中不需要传递参数,代码如下:

$httpBackend.expectPOST('http://localhost:3000/booking_requests.json').respond({data:{eta:201,id:456}});