2017-09-21 8 views
0

검도 콤보 박스가 있습니다. 메소드 중 하나에서 콤보 상자에서 값을 가져옵니다. jasmine을 사용하여 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을 살펴보십시오. 뷰 모델을 설정하고 (HTML에 대해 아무것도 모르는) HTML 요소 및 검도 위젯에 바인딩 할 수 있으므로 뷰 모델을 쉽게 테스트 할 수 있습니다.

JavaScript를 설정 한 방법은 단위 테스트를 매우 어렵게 만듭니다. 내가 생각할 수있는 유일한 방법은 검도 위젯에서 값을 가져 오는 코드와 그 값을 사용하는 코드를 분리 한 다음 후자를 테스트하여 테스트 할 값을 전달하는 것입니다. 아직도 구조적으로 올바른 방법은 아니지만 지금은 효과가 있습니다.

+0

입력 해 주셔서 감사합니다. 기존의 프로덕션 코드입니다. 최근이 프로젝트에 참여했습니다. 코드는 jquery를 사용하여 광범위한 DOM 조작을 사용하므로 단위 테스트를 분리하는 것은 매우 어렵습니다. 현재 기존 코드를 리팩터링하고 검도를 사용하고 있습니다. 더 나은 구조를위한 MVVM –

+0

@sajeshNambiar 그걸로 행운. 나는 같은 입장에 있으니 기분이 어떤지 알아! –