使用jasmin对AngularJS$事件进行单元测试

unit test AngularJS $event with jasmin

本文关键字:单元测试 事件 jasmin AngularJS 使用      更新时间:2023-09-26

测试此指令函数的最佳方法是什么?

$scope.addToToList = function(event){
    var offset = $(event.target).offset();
    addToListService.showPopUp(offset.left, offset.top);
};

指令的HTML模板:

<div ng-click="addToToList($event)">

如何测试$event

以及如何测试addToListService.showPopUp(x,y)是否已被调用?我想测试偏移量以获得一个值。

您可能需要间谍。

it("should call showPopUp with offset from event", function() {
  var
    offset = { left: 100, top: 200 },
    ev = {
      target: {
        offset: function () { return offset; }
      }
    };
  spyOn(addToListService, 'showPopUp');
  scope.addToToList(ev};
  expect(addToListService.showPopUp).toHaveBeenCalledWith(offset.left, offset.top);
});