Внутренний Асинхронный вызов до ()
Мне нужно запросить некоторые файлы JSON, которые содержат данные, которые я использую для тестирования. Я хотел бы сделать запрос в методе установки, но к нему не прикреплен асинхронный метод. Когда я запускаю приведенный ниже код, журнал внутри тестовой функции входа в систему отправляется на консоль до того, как будут отправлены мои журналы из метода установки. Есть ли способ, которым я могу сказать программе установки дождаться завершения моих звонков, прежде чем запускать тесты?
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();
}
};
});
});
1 ответ
Решение
Если вы вернете обещание от setup
функции, стажер будет ждать его разрешения, прежде чем начинать тесты. Вы можете вернуть Promise.all(...)
из всех ваших запросов.