Можно ли создать функцию внутри `conf.js`?

Можно ли создать функцию, которая будет использоваться для каждой спецификации для тестирования, например, функция входа в систему внутри файла conf.js или напрямую sendKeys из conf.js как из spec.js

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
206
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Из синтаксиса nodejs он поддерживает это следующим образом:

// conf.js
exports.config = {
   // put config at here as usual
};

exports.login = function(username, password) {

  browser.get('');
  element.sendKeys('');
};

// spec.js

var login = require('./conf.js').login;
// actually, you can move the login function to another .js file to keep
// conf.js more dedicated on configuration purpose.

describe("A spec (with setup and tear-down)", function() {

   it('', function(){
       login('username', 'password')
   });

});

Но это плохая практика. Поскольку основная структура тестирования поддерживает выполнение каких-либо действий перед каждым тестовым примером. Для жасмина он поставляет beforeEach:

describe("A spec (with setup and tear-down)", function() {
  var foo;

  beforeEach(function() {
    foo = 0;
    foo += 1;
  });

  afterEach(function() {
    foo = 0;
  });

  it("is just a function, so it can contain any code", function() {
    expect(foo).toEqual(1);
  });

  it("can have more than one expectation", function() {
    expect(foo).toEqual(1);
    expect(true).toEqual(true);
  });
});

Наконец, я не вижу пользы / преимущества в том, чтобы делать то, что вам нужно.

просто глупый вопрос, функция beforeEach будет вызывать только один раз или перед каждой функцией

Rao 23.11.2018 05:54

спасибо, я реализовал вышеупомянутое решение, и оно сработало

Rao 23.11.2018 06:07
beforeEach() будет вызываться перед выполнением каждой функции it().
yong 23.11.2018 07:47

Если вы входите в систему в beforeEach(), вы можете выйти из системы в afterEach(). Или вы можете использовать beforeEach() только со следующим процессом: 1) выйти из системы независимо от входа в систему или нет, 2) выполнить вход

yong 23.11.2018 07:59

можно настроить beforeEach для вызова только для самого первого it()

Rao 23.11.2018 08:16

Вы не можете. Если вы хотите, чтобы строки кода внутри beforeEach() выполнялись только один раз, вы можете переместить эти строки кода в отдельный it() и поместить этот it() в начало всех it().

yong 23.11.2018 09:08

Другие вопросы по теме