2013-07-30 5 views
0

JS 객체를 방출하는 관찰 가능 객체가 있습니다. 테스트에서 관찰 가능한 변환이 올바른 JS 객체를 생성한다고 주장하고 싶습니다. 문제는 rx.js가 실패해야하는 테스트가 통과하기 때문에 어떤 종류의 어설 션을 사용하고 있는지 이해할 수 없다는 것입니다.rx.js 구조체에 의한 객체 동등한 테스트

예를 들어,이 테스트, based on one from the examples directory을 실패시키고 싶지만 그렇지 않습니다. 생성 된 값은 { prop: 42 }이고 예상되는 값은 { prop: 43 }입니다.

test('returnValue Basic', function() { 
    var scheduler = new TestScheduler(); 
    var results = scheduler.startWithCreate(function() { 
     return Observable.returnValue({ prop: 42 }, scheduler); 
    }); 

    var expectedMessages = [ 
     onNext(201, { prop: 43 }), 
     onCompleted(201) 
    ]; 

    CollectionAssert.assertEqual(expectedMessages, results.messages); 
}); 

누구에게 무슨 문제가 있는지 알고 어떻게 해결할 수 있습니까? 자바 스크립트에서 객체 평등을 이해하지만 다음 단계입니다. rx.js가 참조 평등 또는 구조적 평등을 사용하지 않는다는 것은 위의 테스트에서 명백합니다.

답변

0

콘솔에서 오류가 발생 했습니까? JS 테스트 프레임 워크는 대개 undefined에있는 속성에 액세스하는 테스트 코드를 사용하여 죽습니다. TestScheduler, Observable, CollectionAssert, onNext, onCompleted : 전체 JS 파일 난 단지 당신을 추측 할 수 보지 않고

는 글로벌 변수를 정의되지했습니다.

+0

도움을 주셔서 감사합니다. https://gist.github.com/mattpodwysocki/6114182에서 바로 볼 수 있듯이 좀 더 자세한 정보를 수집했습니다. 즉, 누락 된 기능과 결합 된 버그입니다. BTW, 내 질문에 스 니펫은 thise 하나입니다 : https://github.com/Reactive-Extensions/RxJS/blob/master/examples/testing/qunit/tests.js#L17-L33. 내가 수정 한 유일한 것은 방출 된 값입니다. –

+0

아 거기에 간다 :) – Brandon