2015-11-05 1 views
1

Je dois demander certains fichiers json qui contiennent des données que j'utilise pour les tests. Je voudrais faire la demande dans la méthode d'installation, mais il n'y a aucune méthode async attachée à elle. Lorsque j'exécute le code ci-dessous, le journal à l'intérieur de la fonction de connexion de test est envoyé à la console avant que mes journaux de la méthode d'installation ne soient envoyés. Est-ce que je peux dire à l'installation d'attendre que mes appels soient terminés avant d'exécuter les tests?Intern Async appeler avant()

define([ 
    'intern!object', 
    'pages/LoginPage', 
    'data-objects/DataFetcher' 
], function(registerSuite, LoginPage, DataFetcher) { 

    registerSuite(function() { 

    var loginId = admin; 
    var password = test; 
    var regionData = US; 
    var loginPage = null; 

    return { 

     name: 'Login test', 

     setup: function() { 
      // Initialize page objects 
      loginPage = new LoginPage(this.remote, this.timeout); 

      // get test data 
      DataFetcher.getData(Pages.LoginPage).then(function(response) { 
       logger.info(DataFetcher.generateData(response)); 
      }); 

      DataFetcher.getData(Pages.TablePage).then(function(response) { 
       logger.info(DataFetcher.generateData(response)); 
      }); 

      DataFetcher.getData(Pages.PersonPage).then(function(response) { 
       logger.info(DataFetcher.generateData(response)); 
      }); 

      DataFetcher.getData(Pages.BasicInfoPage).then(function(response) { 
       logger.info(DataFetcher.generateData(response)); 
      }); 

      DataFetcher.getData(Pages.CompanyInfoPage).then(function(response) { 
       logger.info(DataFetcher.generateData(response)); 
      }); 
     }, 

     login: function() { 
      logger.log('info', 'Login is ' + loginId + ' Password ' + 
       password); 
      return loginPage.load(regionData.BASE_URL) 
       .login(loginId, password) 
       .getAccumulatedState(); 
     } 
    }; 
    }); 
}); 

Répondre

3

Si vous retournez une promesse de la fonction setup, stagiaire attendra à résoudre avant que les tests de départ. Vous pouvez renvoyer un Promise.all(...) de toutes vos demandes.