在Angular version1中,如何测试我的范围。$ on on listener?
这是我的代码:
$scope.$on("pagination:getCardExpandData", (event, cardObj) => $scope.loadLocationCardExpandedData(cardObj));
这是我的测试:
it("should call loadLocationCardExpandedData function on emit", function () {
scope.$emit('pagination:getCardExpandData', {});
expect(scope.$on.calledWith("pagination:getCardExpandData", {})).toEqual(true);
expect(scope.loadLocationCardExpandedData).toHaveBeenCalled();
});
这是我得到的错误:预期false等于true。
我正在使用karma runner与jasmine和JavaScript。
答案 0 :(得分:1)
做一个$ digest,所以angular知道要更新。
scope.$emit('pagination:getCardExpandData', {});
scope.$digest();
或者你可以听父母范围:
var called = false;
$rootScope.$on('pagination:getCardExpandData', function(){
called = true;
});
答案 1 :(得分:1)
为了实现这一点,我需要这样做:
scope.$emit('pagination:getTabPage', "next", function(){
expect(scope.$on.calledWith("pagination:getTabPage", "next")).toEqual(true);
expect(scope.loadLocationTab).toHaveBeenCalled();
});