2016-08-25 4 views
0

私はバックボーン同期がパラメータ(オブジェクト)で呼び出されているかどうかを確認するジャスミンユニットテストを作成しています。ここでジャスミンテストをチェックするバックボーン同期に渡されるパラメータ

は私のコレクションには、コードベース

である私は、骨の同期ここで

sync: function (method, collection, options) { 
      if (!options) { 
       options = {}; 
      } 
      options.headers = { 
       “x-yz-webservice-client-id": “abcde" 
      }; 
      return Backbone.sync(method, collection, options); 
} 

戻る呼び出して同期する方法を持っている私は、バックボーン同期のoptions.headersは、{objectに設定されているかどうかを確認したいです "x-yz-webservice-client-id": "abcde" };次のように私はジャスミンテストでやろうとしています何と作業されていない

は次のとおりです。

var headers = { 
       “x-yz-webservice-client-id": “abcde" 
    }; 
var autoCompleteRecommendationsCollection = new AutoCompleteRecommendationsCollection({},opt); 
spyOn(Backbone, 'sync'); 
    autoCompleteRecommendationsView.initialize(options); 
expect(Backbone.sync).toHaveBeenCalledWith(jasmine.anything(), jasmine.anything(), jasmine.objectContaining(headers)); 

私は、この3番目の引数は、上記のようにヘッダに設定されたプロパティを持ってテストしたいです。この議論をチェックする良い方法はありますか?あなたはスパイが実際に呼ばれて確認している、しかし、あなたのコードが間違って何もないように思わ

expect(Backbone.sync.calls.mostRecent().args[2].headers) 
    .toEqual(jasmine.objectContaining({ 
     “x-yz-webservice-client-id": “abcde" 
    })); 

答えて

0

は、代替のようになり、あなたはジャスミンのバージョン2.xを使用していると仮定すると?変数Backboneを扱っているので、テスト対象のスペックとクラスが同じものを共有していることを確認する必要があります。

関連する問題