第六周周记
上个星期写了几个组件的单元测试,只是完成一半不到,一共有三十几个组件要写单元
测试,要进行覆盖率检测。所以这个星期是将剩下来的组件全部实现单元测试。
在经历过多个组件单元测试的编写,问感觉我越来越得心应手。有以下总结: 一、test
方法是 jest 提供的一个方法,接受两个参数,第一个参数是描述,第二个参数是函数,
执行的判断方法。其二、expect 方法传入的值是函数根据某个例子运行的结果,再利用匹配
器进行判断是否一致。其三、单元测试需要使用 render 方法挂载 dom 节点。其四,在漫长
的摸索中,我发现,Jest 在挂载虚拟 Dom 节点的时候,可以使用 js 原生代码去操作虚拟
Dom,进行 Dom 遍历,去访问 Dom 的属性等。都是比较直接快速的办法。最后 umi-test 还
提供了一些操作的方法,比如模拟点击、模拟输入。可以使用 fireEvent.click 方法模拟点击,
可以使用 fireEvent.change 模拟 input 输入值。
但是还是有点不足,不能模拟上传文件、长按等事件。我在进行对 ImagePicker 组件(是
一个上传多图片的组件)编写单元测试时,需要对其进行上传文件、删除上传文件等操作时,
遇到了难题,如何模拟 Input 获取文件,并进行修改?于是我去问我的导师,我的导师告诉
我,目前还不能模拟实现上传文件的功能。我瞬间如释重负,这给我省下不少时间,但是另
一方面也影响了 Dfrom 组件的综合覆盖率。 所以 Jest 还是有待后期加强。
评论0