我有一个包含许多规格的套件。每个规范都包含对许多可重用函数的调用(跨规范和套件共享)。其中一些功能包括期望,有些则不包括。实际上,这些功能可以创建"构建块"我的规格和套件都是从中建造的。
目前,当我进行测试时,他们会继续“无情地”#34; - 即,如果期望失败,测试将尽力继续。也就是说,绝大多数情况下都是绝佳的。
但是,我有一两个可重复使用的功能,包括期望如果它们失败,那个规范中所有剩余的函数调用/期望都会保证失败 - 因此没有必要继续 - 更好地中止该规范,并且试试套房中的下一个。
但是我看不出有什么方法可以做到这一点 - 谷歌等只是建议"保释第一次失败"类型选项,这不是一回事。
显然(除非我非常错误!)expect
没有返回任何内容,所以我想我想修改这些特殊功能,类似于以下茉莉花式伪代码(不打算作为实际的JS!)
bailOnFail = true
expect (something).ToEqual(importantValue);
bailOnFail = false
或者
if (something !== importantValue){
fail ("Oh dear, it's all gone horribly wrong");
exitSpec
}
(顺便说一句,是否有某种pass
等同于fail
语句添加"任意"传递给结果?? !!)
答案 0 :(得分:1)
您可以使用Promise.reject();
来完成此操作if (something !== importantValue){
Promise.reject("Oh dear, it's all gone horribly wrong");
}