Стабинг в Синоне - PullRequest
       25

Стабинг в Синоне

0 голосов
/ 09 ноября 2018

Я очень новичок в модульном тестировании. Это также относится и к написанию модульного тестируемого кода.

Я пытаюсь реализовать заглушку, чтобы имитировать то, что произошло в page.evaluate (). Объект страницы вводится из внешней функции с помощью библиотеки «puppeteer».

Читал об этом на sinonjs .. Но я не смог обернуть голову вокруг этого.

async function cinemasfromState(page, state) {
  const CINEMA_STATE_SELECTOR = `div.top-select div.slider span.state[data-state-selector=$[STATE]]`;
  const CINEMA_SELECTOR = `div[data-state=$[STATE]] div.top-select-option a.eccheckbox`;

  await page.click(CINEMA_STATE_SELECTOR.replace("$[STATE]", state));

  let res = await page.evaluate(
    (elementPath, state) => {
      return Array.from(document.querySelectorAll(elementPath))
        .map(
          function(cin, index) {
            let result = {
              cinemaState: this.state,
              cinemaId: cin.getAttribute("data-id"),
              cinemaName: cin.getAttribute("data-name"),
              cinemaURL: cin.getAttribute("data-url")
            };
            return result;
          },
          { state }
        )
        .reduce((acc, cur) => Object.assign(acc, { [cur.cinemaId]: cur }), {});//filter dupes

    },
    CINEMA_SELECTOR.replace("$[STATE]", state),
    state
  );

  return res;
}

Интересно, если бы вы могли помочь / указать в правильном направлении. Также приветствуются любые комментарии по тестируемости этого кода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...