2014-08-27 49 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); 
});