У меня есть html-страница, которая запрашивает учетные данные после загрузки страницы. Как только правильные кредиты отправляются, выполняется асинхронная функция. Функция async возвращает обещание. Как только обещание будет разрешено, узел будет вставлен в dom с текстом ответа.Как написать функциональные тесты в js js в приложении, которое имеет асинхронные функции?
var executeRequest = Request(req);
executeRequest.then(function(response) {
var node = domConstruct.toDom("<div id='text'></div>");
domConstruct.place(node, "title", "after");
node.innerHTML = JSON.stringify(response);
});
Но тест не выполняется полностью, так как он не ждет, пока обещание будет устранено.
var dfd = this.async(15000);
return this.remote
.get(require.toUrl(url))
.setFindTimeout(5000)
.elementById('dijit_form_ValidationTextBox_0')
.click()
.type('user1')
.end()
.elementById('dijit_form_ValidationTextBox_1')
.click()
.type('user1')
.end()
.elementById('dijit_form_Button_0')
.click()
.end()
.waitForElementById('text')
.text()
.then(dfd.rejectOnError(function(result) {
assert.equal(result.length, 2, 'When form is submitted, operation should complete successfully');
dfd.resolve();
}), dfd.reject);
Что я делаю неправильно?
не бен, он не работал. Это переход к следующему тесту, когда обещание возвращается методом async 'request'. Наверное, я неправильно обрабатываю эту часть. –