【问题标题】:Is there a way to test this anonymous function on $rootScope.$on?有没有办法在 $rootScope.$on 上测试这个匿名函数?
【发布时间】:2016-05-04 06:20:52
【问题描述】:

这是我正在使用的控制器:

function CategoryController($rootScope, CategoryList, ProductList) {
var vm = this;
vm.categories = CategoryList;
vm.products = ProductList;
$rootScope.$on('OC:FacetsUpdated', function(e, productList) {
    productList ? vm.products = productList : vm.products = ProductList;
})

}

我想测试一下,当广播被触发时,如果 productList(来自广播)有一个值,vm.products 的值会改变。

我知道我可以触发广播,但据我所知,我无法监视匿名函数。想法?

【问题讨论】:

  • 你为什么要监视它?发出事件,并检查 vm.products 是否已正确初始化。

标签: angularjs jasmine angular-mock


【解决方案1】:

正如JB Nizet 所说,spyOn 您要测试的功能没有意义。您在这里的目的是要测试匿名函数的逻辑,因此只需发出事件并检查您的 vm.products 是否已更改。

【讨论】:

    猜你喜欢
    • 2021-11-29
    • 2012-05-30
    • 2012-11-30
    • 2012-05-25
    • 2021-01-23
    • 2020-08-11
    • 1970-01-01
    • 2020-01-09
    • 1970-01-01
    相关资源
    最近更新 更多