Jest 报告测试通过,即使期望断言失败
Posted
技术标签:
【中文标题】Jest 报告测试通过,即使期望断言失败【英文标题】:Jest reports that test passes even though expect assertion fails 【发布时间】:2019-04-11 09:12:43 【问题描述】:在this code sandbox 中执行以下测试:
import of from "rxjs";
import map from "rxjs/operators";
const source = of("World");
test("It should fail", () =>
source.subscribe(x => expect(x).toContain("NOTHING"));
);
Jest 将其报告为通过,即使期望失败。想法?
【问题讨论】:
期望在测试结束后到来。 【参考方案1】:rxjs observables 是异步的。看看this page 帮助测试异步代码
你想添加 done 参数如下 ->
test("It should fail", done =>
source.subscribe(
x =>
expect(x).toContain("NOTHING")
done();
);
);
【讨论】:
有趣的是,他正在测试的 observable 不是异步的。所以这似乎是 Jest 中的一个错误。 observable 本身可能不是异步的,但订阅调用是异步的,并且 Jest 在达到期望调用之前完成了测试以上是关于Jest 报告测试通过,即使期望断言失败的主要内容,如果未能解决你的问题,请参考以下文章
解决用try except 捕获assert函数产生的AssertionError异常时,导致断言失败的用例在测试报告中通过的问题