選択したテスト フレームワークである jasmine を使用して、ember.js でルートのイベント ハンドラーをスタブ/スパイしたいと考えています。通常、これには対象の関数をスパイで上書きすることが含まれます。これには、メソッドが定義されているオブジェクトへのアクセスが必要です。
spy = spyOn(someObject, "methodOnThatObject")
しかし、Ember では、ルートのイベント ハンドラーは次のように定義されています。
App.ActivityRoute = Ember.Route.extend({
events: {
show: function(context) {
}
}
});
関数 show をスタブ化したいのですが、最終的に定義されるオブジェクトを取得する方法がわかりません。それとも、オブジェクトで定義されていますか? #call または #apply で呼び出されたのではないでしょうか? もしそうなら、どのようにこれをスタブしますか?
ソースを掘り下げてみましたが、これがどのように処理されるかわかりませんでした。ソース内のどこを見るべきかについてのポインタも役に立ちます。
乾杯、 ケビン