2014-08-27 48 views
0

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

$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)已被调用? 我想测试偏移量以获得一个值。

回答

0

A spy可能是你需要的。

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); 
});