gpt4 book ai didi

javascript - 在 Angular version1 中,我如何测试我的 scope.$on 监听器是否被调用?

转载 作者:行者123 更新时间:2023-11-28 20:52:57 26 4
gpt4 key购买 nike

在 Angular 版本 1 中,我如何测试我的 scope.$on 监听器是否被调用?

这是我的代码:

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

这是我得到的错误: Expected false to equal true.

我将 karma runner 与 jasmine 和 JavaScript 结合使用。

最佳答案

做一个 $digest 以便 angular 知道要更新。

scope.$emit('pagination:getCardExpandData', {});
scope.$digest();

或者,您可以在父范围内收听:

var called = false;
$rootScope.$on('pagination:getCardExpandData', function(){
called = true;
});

关于javascript - 在 Angular version1 中,我如何测试我的 scope.$on 监听器是否被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38463952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com