我正在为网站设置自动化测试,我的一个规格依赖于之前的规范传递。第一个规范将在页面中保存预设配置,第二个规范将删除它。因此,如果第一个规范未能保存预设,我不希望第二个规范运行(否则它可能会删除我想要的预设!)。
如果第二个规范没有运行,我想继续测试其后的规格。但是,只需在第二个规范中加入保证失败的期望语句,就可以继续使用规范(这意味着删除预设)。我试过快速失败,但是这会在失败时完全退出测试,这不是我想要的。我还尝试使用' done'来实现异步测试,但功能类似于预期。
目前我通过尝试调用一个不存在的函数来解决这个问题。它只是失败了当前的规格,没有继续当前的规格,并开始测试下一个规格。但是我觉得应该采用更清洁的方法。是否存在退出规范的内置方式?
这是我目前的第二个规格。 origPresets
是第一个规范中设置的全局变量:
it('should allow presets to be deleted', function() {
return MyPageObject.GetNumberOfPresets().then(function(numPresets) {
if (numPresets === origPresets) {
FailingThisSpec();
}
// rest of spec starts here
答案 0 :(得分:0)
我认为如果我理解正确的话,jasmine 2.x中的fail()函数可以帮助您解决问题。
it('should allow presets to be deleted', function() {
return MyPageObject.GetNumberOfPresets().then(function(numPresets) {
if (numPresets === origPresets) {
fail("Can't delete");
}
// rest of spec starts here