rx.js按结构测试对象相等

时间:2013-07-30 10:48:58

标签: javascript system.reactive rxjs

我有一个可以发出JS对象的observable,我想在我的测试中声明我所做的可观察转换会产生正确的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没有使用引用相等,也没有结构相等。

1 个答案:

答案 0 :(得分:0)

您是否在控制台中查找错误? JS测试框架通常面对访问undefined上的属性的测试代码。

如果没有看到整个JS文件,我只能猜测你没有定义全局变量:TestSchedulerObservableCollectionAssertonNext,{{1} }。