subscribe()中的expecting()失败并不会将测试标记为无效

Day*_*sha 3 jestjs rxjs6

我们最近升级到Angular 6.0.3,RxJs 6.2.0和jest 23.1.0(从RxJS 5和Angular 4升级).

Jest和RxJs似乎存在问题,因为subscribe-Block中的expect-statements失败并不会将测试标记为失败.这是一个最小的例子:

    it("should fail", () => {

        const obs = Observable.create((observer) => {
            observer.next(false);
        });

        obs.subscribe((value) => {
            console.log(value); // => false
            expect(value).toBeTruthy();
        });

    });
Run Code Online (Sandbox Code Playgroud)

expect-Statement被执行,但测试仍然通过.我们没有观察到以前的RxJs版本和Jest的这种行为.

Ald*_*Inf 7

尝试使用完成.

it("should fail", (done) => {

    const obs = Observable.create((observer) => {
        observer.next(false);
    });

    obs.subscribe((value) => {
        console.log(value); // => false
        expect(value).toBeTruthy();
        done();
    });

});
Run Code Online (Sandbox Code Playgroud)

更多信息