做单元测试,相同类型的数据测得不同结果[已解决]
发布于 2天前 作者 qianjiahao 173 次浏览 最后一次编辑是 9小时前 来自 问答

写了一个练习,用promise,async,eventproxy处理回调。

流程:通过抓取网站数据,转json格式,写入文件,读取文件。

项目运行正常,文件数据正常读取。结构如下: QQ20150430-1@2x.png

在做测试的时候,想验证数据是否写入json文件,就用了fs-extra 的同步读数据。

在程序可以正常读取数据的情况下,测试用例无法正常读取数据,测试结果:

QQ20150430-2@2x.png

我很奇怪,如果是我的路径写的有问题,那么应该三个测试用例均无法通过,但是第一个promiseData的用例就可以通过。

测试用例log:

QQ20150430-3@2x.png QQ20150430-3@2x.png

后来我尝试了readJson()和readJsonSync(),发现结果都是promiseData可以通过,后两个无法通过。

然后我对比了data目录的三个文件的内容,因为我抓取了相同的目标,所以文件内容是肯定相同的,这就郁闷了,不知道是哪里写的有问题,希望大家能指出。

1 回复

问题解决啦~~

原因是如果执行脚本文件的话,其中的fs中写入的路径会受执行comand命令的位置的影响。 我把fs中的路径配置到从根目录下开始,然后用配完的Makefile来跑测试用例就ok啦~~

如果有遇到相似问题的小伙伴可以参考我的情况哈~ 项目地址: callback

回到顶部