2017-09-21 9 views
0

私は剣道コンボボックスを持っています。 メソッドの1つでは、コンボボックスから値を取得しています。 ジャスミンを使用してkendoComboBoxをモックすることは可能ですか?ジャックミンを使用した剣道の模擬部分

var $categoryComboBox = $('#Category').data('kendoComboBox'); 
var selectedCategory = categoryComboBox.dataItem($categoryComboBox.select()); 

マイジャスミンのテストケースは、私はこれが動作するために、私はdummyElementとして指定すべきかわからない

var combo = spyOn($.fn, "data").and.returnValue(dummyElement); 
         var selectedCat = spyOn($.fn, "select").and.returnValue("1"); 
         var selectedItem = spyOn(combo, "dataItem").and.returnValue({ 'ID': '1', 'ClaimTypeCode': 'WW' }); 

のようなものです。

+0

私に進むための入力はありますか? –

答えて

1

はあなたのような音

おかげでユニットテストのためのあなたのJavaScriptを構造化していません。 DOMとコードを分離すると、DOMとは独立してコードをテストできます。

KendoUI MVVM libraryを見てください。これは、ビューモデル(DOMについては何も知らない)を設定し、それをHTML要素と剣道ウィジェットにバインドして、ビューモデルを簡単にテストできるようにします。

JavaScriptの設定方法は、ユニットテストを非常に難しくしています。私が考えることができる唯一のことは、剣道ウィジェットから値を取得するコードを、その値で何かを行うコードから分離して、後者をテストし、テストする値を渡すことです。まだそれを構造化する正しい方法ではありませんが、今のところうまくいくでしょう。

+0

入力していただきありがとうございます。これは既存のプロダクションコードです。最近このプロジェクトに参加しました。このコードはjqueryを使用した広範なDOM操作を使用しているため、単体テストを分離することは非常に難しく、現在のコードをリファクタリングし、より良い構造のためのMVVM –

+0

@ sajeshNambiarそれと幸運。私は同じポジションにいるので、どのように感じるか知っている! –

関連する問題