11

考虑这种常见的情况:

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

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

spyOn(a.b, 'c');

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

如何监视嵌套方法?

更新

输出是:Object [object Object] has no method 'tohaveBeenCalledWith'

4

1 回答 1

5

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

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

于 2013-07-12T15:05:36.337 回答