Как я могу создать повторно используемый код в функции для тестирования в Puppeteer? - PullRequest
0 голосов
/ 05 июня 2019

Я тестирую код в кукловоде с шуткой:

Как создать повторно используемую функцию для похожих тестов входа в систему без повторения кода?

  describe('new user test', () => {
    test('no existed user try', async() => {
  browser = await puppeteer.launch(chromeOptions)
  const page = await browser.newPage();

  await page.goto("https://admin.manager.synthrone.com/") 

  await page.waitForSelector('#mat-input-0')
  await page.type('#mat-input-0', 'test')
  await page.type('#mat-input-1', 'pass')
  await page.click('button')

1 Ответ

0 голосов
/ 05 июня 2019

Вы уже написали допустимую функцию анонимного обратного вызова, вам просто нужно параметризовать некоторые необходимые переменные и дать имя функции.

Вот пример селекторов и URL-адресов в качестве аргументов

async function loginTest(url, selectors){
    const browser = await puppeteer.launch(chromeOptions);
    const page = await browser.newPage();
    await page.goto(url);

    await page.waitForSelector('#mat-input-0');
    await Promise.all(Object.keys(selectors).map(selector => page.type(selector, selectors[selector])));
    await page.click('button');

    await browser.close();
}

describe('new user test', () => {
    test('no existed user try', () => loginTest("https://admin.manager.synthrone.com/", {'#mat-input-0': 'test', '#mat-input-1': 'pass'}));
    test('some other test', () => loginTest("https://admin.manager.synthrone.com/", {'#mat-input-0': 'differentarg', '#mat-input-1': 'differentpass'}));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...