在诗乃的存根

时间:2018-11-09 19:32:52

标签: javascript unit-testing sinon stub

我对单元测试非常陌生。还要编写模块化的可测试代码。

我正在努力实现一个存根来模仿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;
}

想知道您是否可以帮助/指出正确的方向。此外,对此代码的可测试性的任何评论都将受到赞赏

0 个答案:

没有答案