Я тестирую Cypress, и у меня есть этот код для пользовательской команды Cypress :
Cypress.Commands.add('login', (user, password) => {
if (!user || !password) {
user = 'user@test.com.br';
password = '123321';
}
cy.visit('');
cy.contains('Entrar').click();
cy.get('input[name=_username]')
.type(user);
cy.get('input[name=_password]')
.type(password);
cy.get('.btn').click();
});
Если вы вызываете cy.login()
без каких-либо аргументов, user
и password
назначены в блоке if
.В противном случае он использует переданные значения параметров.
Я попытался добавить здесь осветительные приборы и придумал следующий код:
Cypress.Commands.add('login', (user, password) => {
if (!user || !password) {
cy.fixture('users').then((json) => {
var user, password;
user = json[0].email;
password = json[0].password;
login2(user,password);
});
} else {
login2(user, password);
}
function login2(user, password) {
cy.visit('');
cy.contains('Entrar').click();
cy.get('input[name=_username]')
.type(user);
cy.get('input[name=_password]')
.type(password);
cy.get('.btn').click();
}
});
Когда я установил user = json[0].email
, он имеет значение простовнутри .then
, поэтому я создал функцию входа в систему, чтобы исправить это.
Я думаю, что есть лучший способ сделать это.Есть идеи?