如何在Jest中测试功能,而JavaScript中不返回任何值

时间:2020-07-23 00:49:27

标签: javascript function unit-testing jestjs

Jest testing env的新手。我需要为三个不返回任何值但希望有两个数值的函数编写测试用例?

如何测试这些功能?有人可以帮我吗

const app = function () {
  let buttons = numbers;
  for (let i = 1; i <= buttons.length; i++) {
    Buttons(buttons, i);
  }
};

const Buttons = (buttons, i) => {
  let div = document.getElementById("main");
  let button = document.createElement("button");
  let text = document.createTextNode(i);
  button.id = "btn-" + i;
  button.appendChild(text);
  div.appendChild(button);
  button.addEventListener("click", function () {
    let num = text.nodeValue;
    for (var i = 1; i <= buttons.length; i++) {
      Highlight(num, i);
    }
  });
};


const Highlight = (num, i) => {
  if (i % num === 0) {
    let box = document.getElementById("btn-" + i);
    box.classList.add("active");
  } else {
    let box = document.getElementById("btn-" + i);
    box.classList.remove("active");
  }
};

1 个答案:

答案 0 :(得分:0)

您可以通过模拟和间谍调用外部方法来测试它们的副作用,从而对其进行测试

  • document.getElementById
  • box.classList.add
  • box.classList.remove
  • button.addEventListener
  • document.createElement
  • document.createTextNode