如果元素包含值,如何退出量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框架问题( jasminemocha等)。

虽然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);

Interesting Posts