0

JS オブジェクトを発行するオブザーバブルがあり、テストで、私が行ったオブザーバブル変換が正しい JS オブジェクトを生成することをアサートしたいと考えています。問題は、rx.js が使用しているアサーションの種類を理解していないことです。失敗するはずのテストが合格しているためです。

たとえば、サンプル ディレクトリのテストに基づいてこのテストを失敗させたいのですが、失敗しません。{ 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 が参照の等価性も構造の等価性も使用していないことは明らかです。

4

1 に答える 1

0

コンソールでエラーを確認しましたか? JS テスト フレームワークは通常、 のプロパティにアクセスしているテスト コードに直面すると機能しなくなりますundefined

TestSchedulerJS ファイル全体を見ないと、グローバル変数, Observable, CollectionAssert, onNext,が定義されていないとしか思えませんonCompleted

于 2013-07-31T17:39:49.013 に答える