2012-08-22 3 views
0

저는 프로젝트에서 일반적으로 사용하는 녹아웃 바인딩 모음을 작성하고 있습니다. 테스트가 필요합니다. 그래서를 heres 기본 테스트, Qunit으로 그 일을 시도Qunit과의 테스트 녹아웃 바인딩이 실패합니다.

module("Message binding"); 

test("When updating message observable with a splash message ", function() { 
    var div = document.createElement("div"); 

    var message = ko.observable(); 

    ko.applyBindingsToNode(div, { message: message }); 

    message({ splash: "Test" }); 
}); 

편집 : 사람이 절름발이 코멘트를 추가하기 전에 : DI가 아직 어설가 없다는 것을 알고를, 내가 얻을 때처럼 행동하는 바인딩 올 것이다 내가 그것을 바인딩 적용 실제 환경

을 (관찰이 null 값을 가지고 있기 때문에 정확)를 null 값으로 바인딩의 업데이트 방법을 발사하지만 메시지 관찰 메시지를 설정할 때 ({splash : "테스트"}); 업데이트 방법이 다시 실행되지 않습니다. 나는 init 호출을 호출하고 메소드를 직접 업데이트 할 수 있지만 KO 관찰 가능 API를 사용하지 않고 테스트는 다소 역효과가 발생합니다.

답변

3

녹아웃은 요소의 종속성을 추적하는 데 사용되는 계산 된 관찰 가능 객체를 삭제합니다. 요소가 문서의 일부가 아닌 것을 감지하면 바인딩.

그래서 바인딩을 적용하기 전에 요소를 문서에 추가하려고합니다. 그런 다음 테스트가 완료된 후 제거 할 수 있습니다.

+0

감사합니다. – Anders

관련 문제