用户登录

我现在想创建一个方法可以加载豆瓣电影的 API,先用 postman 这个方法去请求一下豆瓣电影的 api ,看看它会给我们返回什么 .. 地址是 api.douban.com/v2/movie/ 请求一下 top250 .. 返回的数据里面,有一个 subjects 属性 .. 它里面的数据就是一些电影内容 ..

再请求一个不存在的 api 地址 .. 返回的数据里面没有 subjects 属性 .. 这样关于加载豆瓣电影 api 的方法的测试,可以去判断一下返回的数据里面是不是有 subjects 属性 ..

先去写这个测试 .. 用一个 it 方法 .. 描述一下这个测试 .. 加载豆瓣 API 返回的内容里应该包含 subjects 属性 .. 使用一下 demo 的 fetchData 这个方法,它就是我们要测试的方法 .. 第一个参数是请求的东西, 比如 top250 .. 第二个参数是一个回调函数 .. 请求回来的数据放到 data 这个参数里面 ..

然后我们检查一下 data .. to have property ,看看数据里面有没有 subjects 这个属性 .. 因为要测试的是一个异步的方法,所以需要添加一个 done .. 结束测试以后,再执行一下它 ...

运行一下测试 .. 测试失败,提示 demo 的 fetchData 不是一个函数 .. 我们再去定义一下这个函数 ..

名字是 fetchData .. 第一个参数是请求的 api .. 第二个参数是一个回调函数 .. 在这个方法里先组织一下请求的地址 .. 添加一个变量,名字是 requestUrl .. 它的值是一个字符模板 .. api.douban.com/v2/movie 后面再加上传递进来的 api ..

然后我们可以使用 nodejs 的 https 去请求这个地址 .. 先在文件的上面导入这个 https 模块 .. 名字是 https .. 回到这个 fetchData 方法 .. 用一个 https 的 get 方法 .. 请求的地址是 requestUrl ...

第二个参数是一个函数,请求回来的数据会在 response 参数里面 .. 添加一个变量,名字是 responseData .. 然后设置一下数据的编码 .. 设置成 utf8

收到数据会发生 data 字件,监听一下这个事件 .. 接收的数据是一小块一小块的 .. 名字可以是 chunk .. 然后把接收到的数据放到 responseData 里面 ..

再监听一下完成以后的 end 事件 ... 完成以后,调用一下 fetchData 的回调函数,把接收到的数据交给它 .. 这个数据是 JSON 格式的,所以要用 JSON.parse 去处理一下 ..

运行一下测试 .. 测试会通过 .. 因为请求回来的数据里面,会包含那个 subjects 属性 ...

测试异步的方法:http《 Node.js:测试 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点