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

时间:2018-06-19 13:56:15

标签: jestjs rxjs6

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

Jest&RxJs似乎存在问题,因为在subscribe-Block中失败的期望语句不会将测试标记为失败。这是一个最小的示例:

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

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

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

    });

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

1 个答案:

答案 0 :(得分:6)

尝试使用完成

Caused by: com.orientechnologies.orient.core.exception.ODatabaseException: OrientDB instanced created without physical path, only memory databases are allowed
    DB name="visdb"
    at com.orientechnologies.orient.core.db.OrientDBEmbedded.buildName(OrientDBEmbedded.java:186)
    at com.orientechnologies.orient.core.db.OrientDBEmbedded.getOrInitStorage(OrientDBEmbedded.java:173)
    at com.orientechnologies.orient.core.db.OrientDBEmbedded.poolOpen(OrientDBEmbedded.java:159)
    at com.orientechnologies.orient.core.db.ODatabasePoolImpl$1.createNewResource(ODatabasePoolImpl.java:40)
    at com.orientechnologies.orient.core.db.ODatabasePoolImpl$1.createNewResource(ODatabasePoolImpl.java:37)
    at com.orientechnologies.common.concur.resource.OResourcePool.getResource(OResourcePool.java:95)
    at com.orientechnologies.orient.core.db.ODatabasePoolImpl.acquire(ODatabasePoolImpl.java:59)
    at com.orientechnologies.orient.core.db.ODatabasePool.acquire(ODatabasePool.java:132)
    at com.orientechnologies.orient.object.db.ODatabaseObjectPool.acquire(ODatabaseObjectPool.java:40)

more info