withData и before вызывается одновременно в webdriverio. Как вызывать сначала, а затем с помощью Data?
У меня есть поставщик данных, который получает данные из пользовательского интерфейса. Для получения данных из пользовательского интерфейса я использую перед подключением, чтобы открыть URL-адрес и выполнить необходимые операции. Но в то же время вызывается метод fromData и before; Следовательно, у dataprovider есть "неопределенная" ценность, которая приводит к ошибке.
describe('abcd', function(){
before(function(){
//get data
});
withData(data, function(value){
it('abccd', function(){
},)
});
});
Как я могу достичь, чтобы получить данные сначала из пользовательского интерфейса, а затем передать его в dataprovider?
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
});
});
});
});
Еще в рубрике
- Вопросы
- Webdriver-io
- withData и before вызывается одновременно в webdriverio. Как вызывать сначала, а затем с помощью Data?