withData и before вызывается одновременно в webdriverio. Как вызывать сначала, а затем с помощью Data?

57
7

У меня есть поставщик данных, который получает данные из пользовательского интерфейса. Для получения данных из пользовательского интерфейса я использую перед подключением, чтобы открыть URL-адрес и выполнить необходимые операции. Но в то же время вызывается метод fromData и before; Следовательно, у dataprovider есть "неопределенная" ценность, которая приводит к ошибке.

describe('abcd', function(){
before(function(){
//get data
});
withData(data, function(value){
it('abccd', function(){
},)
});
});

Как я могу достичь, чтобы получить данные сначала из пользовательского интерфейса, а затем передать его в dataprovider?

спросил(а) 2018-02-20T09:46:00+03:00 2 года, 7 месяцев назад
1
Решение
57

3 вещи для проверки...

Во-первых, убедитесь, что вы получаете данные либо синхронно, либо делаете before асинхронным кодом дескриптора. Читайте об этом здесь: Mocha Asynchronous Code

Во-вторых, я не знаю, как работает withData, но вы можете withData свои тесты таким образом, чтобы сделать Mocha call withData после вызова before.

В-третьих, убедитесь, что вы используете data в правильной области и не случайно получаете другую.

Таким образом, с этими предложениями ваш код может выглядеть примерно так:

describe('abcd', function() {
var data = null; //declare data in a scope usable by 'before' and 'withData' functions

before(function() {

// get data synchronously
data = 'some data';

// or...

//return a promise so the tests don't start before the promise resolves
return getData().then(function (someData) {
data = someData;
})
});

// nested tests that will start only after 'before' function finished executing
describe('with data', function () {
withData(data, function(value) {
it('abccd', function() {
//test
});
});
});
});

ответил(а) 2018-02-20T13:07:00+03:00 2 года, 7 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема