バックボーンビューの初期化関数の1つに、次のコードが含まれています。
$.when(this.broadcasters.fetch(),
this.model.fetch(), this.call_types.fetch()).done(
function(){
do_important_stuff
});
フェッチの結果はテストには関係ありませんが、ブロック内のコードはテストにとって重要です。
私の最初の考えはjasmine-ajaxを使用することでしたが、それは最新のリクエストへの応答のみをサポートし、実際には3つの異なるAJAXリクエストに応答する必要があります。
モックオンするオブジェクトがないため、実際にモックアウトすることはできません(これは初期化関数であるため)。
結局、「do_important_stuff」を手動で実行することになりました。これは、コードをテストに複製するため、理想的ではないようです。
編集:
リクエストに応じて、ビューインスタンスの作成方法は次のとおりです。
var responder = new EmailResponder({model: email, el: some_element, reply: true});