我希望使用我选择的测试框架 jasmine 对 ember.js 中的路由事件处理程序进行存根/监视。通常这涉及用 spy 覆盖感兴趣的函数,这需要访问定义方法的对象:
spy = spyOn(someObject, "methodOnThatObject")
但是在 Ember 中,我的路由的事件处理程序定义如下:
App.ActivityRoute = Ember.Route.extend({
events: {
show: function(context) {
}
}
});
我想存根函数 show,但我不知道如何获取最终定义它的对象?或者它是否曾经定义在一个对象上?也许它是用#call 或#apply 调用的?如果是这样,一个如何存根呢?
我试过挖掘源头,但没有设法弄清楚这是如何处理的。任何指向我应该在源代码中查看的位置也会有所帮助。
干杯,凯文