AngluarJS量角器测试:函数应该返回一个promise

时间:2015-12-08 09:24:05

标签: javascript angularjs promise protractor

我有一个函数可以在表单中输入一些值。这应该返回一个promise,所以我的测试会等到函数完成并在表单中输入值。我如何在量角器测试中做到这一点?

function enterSomeValuesIntoForm() {
    // do some stuff
    element(by.id('value1')).sendKeys('hello');
    element(by.id('value2')).sendKeys('is it me you looking for?');
    element(by.id('submitButton')).click();
});

1 个答案:

答案 0 :(得分:1)

据我所知,你实际上并不需要从这个函数返回一个promise。函数调用期间执行的所有操作都将由Control Flow

控制和排队
  

WebDriverJS(以及Protractor)API完全是异步的。所有   函数返回承诺。

     

WebDriverJS维护一个待处理的承诺队列,称为控件   流程,以保持执行有序。

您仍然可以返回click()返回的承诺:

function enterSomeValuesIntoForm() {
    // do some stuff
    element(by.id('value1')).sendKeys('hello');
    element(by.id('value2')).sendKeys('is it me you looking for?');
    return element(by.id('submitButton')).click();
});

以便您以后可以明确解决:

enterSomeValuesIntoForm().then(function () {
    // form is submitted at this point
});