带有Jasmine2的量角器 - 如何提前退出规格以满足某些期望,但不是全部?

时间:2016-04-29 13:19:07

标签: jasmine protractor

我有一个包含许多规格的套件。每个规范都包含对许多可重用函数的调用(跨规范和套件共享)。其中一些功能包括期望,有些则不包括。实际上,这些功能可以创建"构建块"我的规格和套件都是从中建造的。

目前,当我进行测试时,他们会继续“无情地”#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语句添加"任意"传递给结果?? !!)

1 个答案:

答案 0 :(得分:1)

您可以使用Promise.reject();

来完成此操作
if (something !== importantValue){
     Promise.reject("Oh dear, it's all gone horribly wrong");
}