2013-06-14 1 views
0

아래와 같이 javascript 파일 내에 ViewModel을 선언합니다.qunit로 javascript 함수를 테스트하십시오.

(function(root) { 
    var ko = root.ko; 

    var vm = { 
     modelType: ko.observable(), 
     message : ko.observable(), 
     toolbarIsVisible : ko.observable(true), 
     isDataDirectoryManager : ko.observable(true), 
     listItems : ko.observableArray(), 

    ko.applyBindings(vm); 

    }; 
}(window)); 

내 단위 테스트 js 파일에서 qunit.js 및 VM과 함께 js 파일을 참조합니다. toolbarIsVisible의 값을 검사하는 테스트를 어떻게 구성합니까? 내 테스트에서 VM 변수를 참조하는 올바른 구문을 쓰는 것 같지 않습니다.

감사 마틴

답변

0

그 테스트에서 그것을 얻을 수 있도록하는 유일한 방법은 ko.applyBindings을 조롱하고 거기에서 VM 값을 가져 오지하기 위해 폐쇄입니다.

하지만 난 정말 당신이

(function(ko, MyApp) { 
    MyApp.ViewModel = { 
     modelType: ko.observable(), 
     message : ko.observable(), 
     toolbarIsVisible : ko.observable(true), 
     isDataDirectoryManager : ko.observable(true), 
     listItems : ko.observableArray() 
    }; 
    ko.applyBindings(ViewModel); 

}(window.ko, window.MyApp = window.MyApp || {})); 

편집처럼 VM의 공개를해야한다 생각은 : 또 다른 팁은

MyApp.ViewModel = function() { 
    this.modelType = ko.observable(); 
}; 

MyApp.ViewModel.prototype = { 
    foo: function() { 
    }   
}; 

편집과 같은 객체 리터럴 그러나 프로토 타입 객체를 사용하지 않는 것입니다 : Qunit 예를

test("When model is valid", function() { 
    var model = MyApp.ViewModel(); 
    model.value("Valid value"); 
    equal(model.canSave(), true, "You should be able to save"); 
}); 
+0

감사합니다. 그런 다음 테스트에서 뷰 모델의 인스턴스를 만듭니다. – Martin

+0

감사합니다. 그런 다음 어떻게하면 modelType의 값을 확인하기 위해 qunit 테스트를 구성 할 수 있습니까? – Martin

+0

편집 – Anders