Javascript 我如何为这个包含json文件下载的react js代码编写单元测试?
我想做的是为这个组件创建一个单元测试。我尝试过模拟点击事件,不幸的是失败了,还尝试过重新创建所需的参数并绕过点击,也没有运气。想知道从哪里开始测试?是否应该仅仅为了测试而更改代码 这是一种观点:Javascript 我如何为这个包含json文件下载的react js代码编写单元测试?,javascript,reactjs,Javascript,Reactjs,我想做的是为这个组件创建一个单元测试。我尝试过模拟点击事件,不幸的是失败了,还尝试过重新创建所需的参数并绕过点击,也没有运气。想知道从哪里开始测试?是否应该仅仅为了测试而更改代码 这是一种观点: export default function SaveAsJSON({data,save}){ return <div className="btn container"> <span className=&quo
export default function SaveAsJSON({data,save}){
return <div className="btn container">
<span
className="col-8 text-danger"
onClick={(e) => save(window.prompt("Enter file name: ") + '.json',
JSON.stringify( data, null, "\t").replace(/\\n/g, '\r\n'))}
>Save list
</span>
<Save/>
</div>
}
导出默认函数SaveAsJSON({data,save}){
返回
保存(window.prompt(“输入文件名:”)+“.json”,
JSON.stringify(数据,null,“\t”).replace(/\\n/g,“\r\n”))}
>保存列表
}
这是演示者:
function SaveAsJSONPresenter() {
const lst = useSelector(state => state.list.elements)
const saveFile = (filename, jsonToWrite) => {
const blob = new Blob([jsonToWrite], { type: "text/json" });
const link = document.createElement("a");
link.download = filename;
link.href = window.URL.createObjectURL(blob);
link.dataset.downloadurl = ["text/json", link.download, link.href].join(":");
const evt = new MouseEvent("click", {
view: window,
bubbles: true,
cancelable: true,
});
link.dispatchEvent(evt);
link.remove()
};
return <SaveAsJSON data={lst} save={saveFile}/>
}
export default SaveAsJSONPresenter;
函数SaveAsJSONPresenter(){
const lst=useSelector(state=>state.list.elements)
const saveFile=(文件名,jsonToWrite)=>{
constblob=newblob([jsonToWrite],{type:“text/json”});
const link=document.createElement(“a”);
link.download=文件名;
link.href=window.URL.createObjectURL(blob);
link.dataset.downloadurl=[“text/json”,link.download,link.href]。加入(“:”;
const evt=新建鼠标事件(“单击”{
视图:窗口,
泡泡:是的,
可取消:对,
});
链接调度事件(evt);
link.remove()
};
返回
}
导出默认的SaveAsJSONPresenter;