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



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Из синтаксиса 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() будет вызываться перед выполнением каждой функции it().
Если вы входите в систему в beforeEach(), вы можете выйти из системы в afterEach(). Или вы можете использовать beforeEach() только со следующим процессом: 1) выйти из системы независимо от входа в систему или нет, 2) выполнить вход
можно настроить beforeEach для вызова только для самого первого it()
Вы не можете. Если вы хотите, чтобы строки кода внутри beforeEach() выполнялись только один раз, вы можете переместить эти строки кода в отдельный it() и поместить этот it() в начало всех it().
просто глупый вопрос, функция
beforeEachбудет вызывать только один раз или перед каждой функцией