TestCafe hook крючка beforeEach - как выполнить функцию и объявить переменную - PullRequest
0 голосов
/ 01 февраля 2019

Я использую TestCafe и ищу решение для двух вещей в ловушке beforeEach: 1. выполнить функцию (войти перед каждым тестом) 2. создать уникальные тестовые данные

Я могу достичь обоихотдельно, но не оба в одном хуке:

Это работает для входа в систему пользователя:

fixture('My Component')
  .beforeEach(login(user, password)
)

И это работает для создания новых тестовых данных для каждого теста:

fixture(`My Component`)
  .beforeEach(async t => {
    randomLastName = faker.name.lastName();
})

Но я не нашел решения для достижения обоих в одном крючке.И я понимаю из документации, что использование двух хуков beforeEach приведет к перезаписи первого.

Моя текущая реализация заключается в выполнении входа в хук beforeEach и создании тестовых данных в каждом тестовом примере, который является более подробным, чем хотелось бы, например, каждый тестовый случай содержит

test('My Test', async (t) => {
  let randomLastName = faker.name.lastName();
  // ...
}

Совет будет принята с благодарностью!

1 Ответ

0 голосов
/ 01 февраля 2019

Одним из решений является использование Тестового контекста для подготовки любого вида контекста данных перед каждым выполнением теста

fixture('My Component')
  .beforeEach(async (t) => {
    // login method
   login(user, password);
   // inject test data in the test context
   t.ctx.inputData = {
      randomLastName: faker.name.lastName()
   };
});

test('My Test', async (t) => {
  // read test data from test context
  const inputData = t.ctx.inputData;
  const randomLastName = inputData.randomLastName;
  // ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...