2013-07-30 62 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); 
}); 

有誰知道問題是什麼,我該如何解決它?我理解JavaScript中的對象平等,但這是下一步。從上面的測試中可以明顯看出,rx.js沒有使用任何引用等式,也沒有使用結構等式。

回答

0

你在控制檯上看錯了嗎? JS測試框架通常在面臨正在訪問undefined上的屬性的測試代碼時死亡。

沒有看到你的整個JS文件我只能猜測你還沒有定義的全局變量:TestSchedulerObservableCollectionAssertonNextonCompleted

+0

感謝您的幫助。我收集了一些更多的信息,你可以在這裏看到:https://gist.github.com/mattpodwysocki/6114182。總之,這是一個錯誤與缺少功能相結合。順便說一句,我的問題中的片段是這樣的:https://github.com/Reactive-Extensions/RxJS/blob/master/examples/testing/qunit/tests.js#L17-L33。我修改的唯一東西是發射的值。 –

+0

啊你去了:) – Brandon