量角器 - 黄瓜承诺最佳实践

时间:2016-10-06 10:44:41

标签: javascript callback promise protractor cucumber

在测试项目中,基本上我有步骤来执行关系功能页面对象。我知道页面对象中的函数应该返回promise,但我不知道最优雅的方法。 现在我的代码流程是:

  1. 步骤定义调用页面对象函数(我的例子:testPage.insertCredentials(user))
  2. 在testPage的函数insertCredentials中,我执行逻辑,最后返回最后一行,因为我需要将某些内容返回到stepTest.js,因为step的函数正在等待承诺执行回调。
  3. 执行回调,并且应继续执行步骤流程。
  4. stepTest.js

     module.exports = function(){
     [...] 
       this.When(/^I insert valid credentials "([^"]*)"$/, function (user, callback) {
          testPage.insertCredentials(user).then(function(){
             callback();
          });
       });
     [...]
     }
    

    testPage.js

    var testPage = {
       insertCredentials: function insertCredentials(usuario){
         userInput: element(by.id('user')),
         passInput: element(by.id('password')),
         [...]
         var user = 'test';
         var password = 'testpass';
         // input user and password
         testPage.userInput.sendKeys(user);
         return testPage.passInput.sendKeys(password);
    
       }
    }
    module.exports=loginPage;
    

    感谢' s:

0 个答案:

没有答案