如果元素包含值,如何退出量angular器中的testing用例
我一直在量angular器上写一套testing,差不多完成了。 我很难搞清楚如何做相当普通的事情。 我希望能够检查一个文本框是否包含一个值,如果是,退出testing用例失败。 (如果文本框包含一个值,我知道testing用例不可能传递)
我目前正在尝试这样的事情:
tasksPage.generalInformationDateOfBirthTextbox.getAttribute('value').then(function(attr){ //attr contains the correct value in the textbox here but how do I return it to parent scope so I can exit the test case? console.log("attr length is " + attr.length); expect(attr.length).toBe(0); },function(err){ console.log("An error was caught while evaluating Date of Birth text value: " + err); });
期望声明失败,因为我期望它,但testing用例继续下去,这似乎是预期的行为。 所以我试着从“then”块中返回true / false,但是我似乎无法弄清楚如何将这个值返回给父范围做出决定。 换句话说,如果我将上面的内容更改为:
var trueFalse = tasksPage.generalInformationDateOfBirthTextbox.getAttribute('value').then(function(attr){ if(attr === ""){ return true; }else{ return false; } },function(err){ console.log("An error was caught while evaluating Date of Birth text value: " + err); }); //This is the 'it' block's scope if(trueFalse == true){ return; }
我知道我对承诺的经验不足可能是因为这个麻烦。 基本上,我只想要一种说法,“如果这样和那样的文本框包含文本,停止testing用例失败”。
谢谢,
这不是一个protractor
问题,它是一个testing框架问题( jasmine
, mocha
等)。
虽然protractor
问题跟踪器存在一个问题:
- – 快速CLI选项
这是关于提及jasmine
问题追踪者的一个开放问题的jasmine
:
- function请求 – 快速失败选项
虽然这没有实施,但有一个解决方法(最初在这里提到):
-
jasmine-bail-fast
包装
使用npm
安装模块后,如果希望testing失败并退出,请添加:
jasmine.getEnv().bailFast();
(不要忘记加载依赖项require('jasmine-bail-fast');
)
另请参阅:
- 茉莉花节点是否提供任何types的“快速失败”选项?
上面的代码的问题是,你正试图比较一个'承诺'和'价值'。
(function(value){if(value)….});
或者通过期望声明进行比较。 像期待(trueFalse).toBe(false);