2013-07-30 65 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