Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何测试剪贴板?_Javascript_Reactjs_Jestjs_Enzyme_Clipboard - Fatal编程技术网

Javascript 如何测试剪贴板?

Javascript 如何测试剪贴板?,javascript,reactjs,jestjs,enzyme,clipboard,Javascript,Reactjs,Jestjs,Enzyme,Clipboard,我有这个功能将当前url复制到剪贴板 const copyToClipboard = (str) => { const tmpElm = document.createElement('textarea'); tmpElm.value = window.location.href; tmpElm.setAttribute('readonly', ''); tmpElm.style.position = 'absolute'; tmpElm.style.left = '-

我有这个功能将当前url复制到剪贴板

const copyToClipboard = (str) => {
  const tmpElm = document.createElement('textarea');
  tmpElm.value = window.location.href;
  tmpElm.setAttribute('readonly', '');
  tmpElm.style.position = 'absolute';
  tmpElm.style.left = '-9999px';
  document.body.appendChild(tmpElm);
  tmpElm.select();
  document.execCommand('copy');
  document.body.removeChild(tmpElm);
};

如何准确地测试此函数?(使用像jest这样的测试框架,它不嵌套在浏览器中)。

我认为你能做的最简单的测试是存根你的
execComand
fn

document.execCommand = jest.fn();
然后您可以编写一个测试,如

expect(document.execCommand).toHaveBeenCalledWith("copy");