javascript - 如何监视 Jasmine 中的嵌套方法?

标签 javascript jasmine

考虑这种常见情况:

var a = {
  b: {
    c: function() {}
  }
}

我想监视 c,虽然它很容易:

spyOn(a.b, 'c');

但是它创建了一个 spy 但它不起作用。没有显示任何错误,调试时我可以看到有一个 spy 。

如何监视嵌套方法?

更新

输出为:Object [object Object] 没有方法 'tohaveBeenCalledWith'

最佳答案

我猜错字是问题所在;正如您概述的那样,监视嵌套函数效果很好。

注意大小写:Jasmine 函数是toHaveBeenCalled()。由于您编写了 tohaveBeenCalled() 错误消息是有意义的(因为没有这样的方法)。 JavaScript 区分大小写:-)

关于javascript - 如何监视 Jasmine 中的嵌套方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17617504/

相关文章:

javascript - 如何将所有选定的文本包装到span元素中?

javascript - Highcharts 中存在多个系列数据,但第二条线图显示被压扁?

javascript - 滚动网格以显示列

angular - Jasmine:Angular Typescript 项目中的 "Incomplete: No specs found"

javascript - 如何将自定义 DateRangePicker 小部件与 Django Filter 的 DateFromToRangeFilter 一起使用

javascript - getElementById() 为空?

angular - NgRx 测试 - 检查分派(dispatch) Action 的顺序

JavaScript 测试简单模块

javascript - 如何动态创建表单元素

angular - 是否可以在 Angular 中模拟属性指令?