一次用Notion辅助学习的尝试

探索如何使用node进行api的单元测试

简介

组里需要我日后使用node测试开发的api,此篇文章记录一下学习过程,整个过程记录使用的工具是notion,通过记录可以加深自己的理解,优化notion中模板结构。

资料清单

  • RESTFul API and POSTMAN

  • JavaScript

  • NVM: learn and install

  • NodeJS: 1. ES6 syntax 2. npm

  • Unit Testing: 1. Mocha 2. Chai

  • Utility Libraries: 1. Loadash 2. Moment

测试工具:REPL

步骤

  1. 对关键词进行搜索,目的是找出高质量的博客或文档

    1. 要求:知识结构尽可能全面
    2. 描述尽可能精准
    3. 语言尽可能通俗易懂
    4. 例子简单高效,易模仿
  2. 对筛选后的文档进行笔记,笔记结构如下

    1. links

        • good link1
        • good link2
    2. keywords

      1. what
      2. why
      3. how to play
      4. good library
  3. 笔记操作的顺序为如下

    1. 逐个打开link,有目的的进行略读
    2. 针对keywords下的几个问题,逐个填满
    3. 如果发现好的library或实例,及时记录
    4. 每篇文章,keyword下的问题遍历完之后,打勾,然后进入下一篇文章,重复keywords的问题
    5. 切记:笔记不追求完美,只要能在舒适范围能帮助自己理解,就是好的笔记
  4. 笔记完成后,要通过实例的实验来强化理解

    1. 打开要实验的ide,这里使用的是在线ide,中途出了不少错,可能换成vscode会更好
    2. 逐个测试实例,概括性的记录结果

操作实例

此次任务记录主要分为了4个模块:

  1. 对大任务进行分解,产出需要聚焦的关键词
  2. 对如何解决关键词相关的任务做出plan规划
  3. 开始搜索任务,完成笔记,记录搜索小结,保存高质量的文档和例子
  4. 对例子逐个进行测试

四个模块完成后,进入总结阶段

1. 分解后的关键词

  • RESTFul API and POSTMAN
  • JavaScript
  • NVM: learn and install
  • NodeJS: 1. ES6 syntax 2. npm
  • Unit Testing: 1. Mocha 2. Chai
  • Utility Libraries: 1. Loadash 2. Moment
  • Playing in REPL

2. 关键词笔记

  • JavaScript

    • What

      网景公司开发的,名字中带有Java是因为当初想蹭Java的热度,除了语法上有点像之外,其它和Java没关系。

      语言设计者是当年网景的Brendan Eich,据说初代版本只用了10天时间。

      电脑、手机、平板上浏览的网页,或者基于HTML5的app,交互逻辑都是基于Javascript。

    • Why

      最流行的脚本语言,驱动网页并用于交互

      跨系统

      跨浏览器

      被Node.js加入到服务器端后,变成了全能选手

      可以在线学习编程

    • Library

      廖雪峰

      前端指南

      菜鸟教程

      How2J

    • How to play

      VS code Web

      REPL

    • Sum

      • JQuery是一个很好用的库!全局变量的别名是**$**
  • Node

    • What

      创建起因来源于浏览器大战

      Ryan Dahl是用C/C++来写高性能web服务。但是因为异步IO,C/C++干起来很痛苦。Javascript是单线程执行,不能进行IO操作,所以这一缺陷导致它只能使用异步IO。

      Node=JavaScript(语言)+Google-V8(引擎)的一个开源服务器项目

      Node可以通过Javascript开发后端项目

    • Why

      最大的优势是借助JavaScript天生的事件驱动机制加V8高性能引擎,使编写高性能Web服务轻而易举。

      其次,JavaScript语言本身是完善的函数式语言,在前端开发时,开发人员往往写得比较随意,让人感觉JavaScript就是个“玩具语言”。但是,在Node环境下,通过模块化的JavaScript代码,加上函数式编程,并且无需考虑浏览器兼容性问题,直接使用最新的ECMAScript 6标准,可以完全满足工程上的需求。

    • How to play

      直接node运行

      vscode玩耍

      在线REPL玩耍

    • Library

      与JavaScript重合

  • RESTFul API and POSTMAN

    • What

      • RESTFul和REST有关,REST和HTTP有关

      • REST指的是一组架构约束条件和原则

      • RESTFul指的是符合REST的架构

      • REST是现有技术、组件和服务下的一种规范

      • 是一种设计风格

      • 获取网络资源的方式是输入唯一的识别地址码URL,也就是接口。具有REST规范的接口被称为RESTFul API。

      • 这种API最常用的数据格式是JSON。

      • 是前后端分离的关键

      • 以资源为基础

      • 不同平台访问服务端的接口是统一的,大大提高了后端代码的扩展性

      • 对比例子
        一次用Notion辅助学习的尝试_第1张图片

    • Why

      规范性:结构清晰、符合标准、易于理解、扩展方便

      由于API就是把Web App的功能全部封装了,所以,通过API操作数据,可以极大地把前端和后端的代码隔离,使得后端代码易于测试,前端代码编写更简单。

      这种设计可以获得极高的扩展性。例如,当用户需要在手机上购买商品时,只需要开发针对iOS和Android的两个客户端,通过客户端访问API,就可以完成通过浏览器页面提供的功能,而后端代码基本无需改动。

      缺点: 这只是一种风格,过于理想的RESTFul API会付出太高的成本。

    • how to play

      POSTMAN

    • Library

      廖雪峰JavaScript的API部分

3. search record

  • RESTFul
    • https://www.liaoxuefeng.com/wiki/1022910821149312/1105003357927328
    • https://www.cnblogs.com/linianhui/p/rest_what-is-rest-use-for.html
    • https://www.cnblogs.com/bigsai/p/14099154.html
    • https://www.runoob.com/w3cnote/restful-architecture.html
  • Unit Testing
  • node 单元测试:关键字- API,node,测试,Mocha,Chai,实例练习
    • https://blog.csdn.net/feinifi/article/details/103972302 简单实例
    • https://juejin.cn/post/6844903823304048648 简单实例
    • https://cloud.tencent.com/developer/article/1651095 supertest
    • https://learnku.com/articles/35165 译文,完整的mocha测试指南
    • https://juejin.cn/post/7060330574375813150 有详细的步骤,但不涉及API
  • Mocha:针对API的测试文档
  • Chai:针对API的测试文档
  • https://javascript.net.cn/tags/单元测试

4. Play Record→ REPL

  • mocha

在REPL上很多跑不动

  • https://segmentfault.com/a/1190000002921481#item-1

The example in github didn’t try to run.

  • https://juejin.cn/post/6907555445628469255

哈哈哈…失败

  • https://juejin.cn/post/6844903446076735495

need other elements to test the cases

  • https://juejin.cn/post/6904229039717187592#heading-0

need the .js file “add”, 此博客貌似是抄袭腾讯IVWEB团队。。

  • https://blog.csdn.net/feinifi/article/details/103972302 简单实例

wuhu! Finally done one.

  • https://juejin.cn/post/6844903823304048648 简单实例

Done!

  • https://cloud.tencent.com/developer/article/1651095 supertest

neet “add.js”

  • https://learnku.com/articles/35165 译文,完整的mocha测试指南
  • https://juejin.cn/post/7060330574375813150 有详细的步骤,但不涉及API

最后是本次task的conclusion:

领导的目的是让我用js来测试他们编写的API是否符合预期

线球实验室 一个看起来不错的JavaScript知识库

牛客网基础教程文档 在基础学习部分有很多学习资料

廖雪峰和菜鸟教程YYDS

前端指北的mocha:上、中、下

详细的mocha教程, 尝试用VS code再来跑一次
/单元测试) 一个看起来不错的JavaScript知识库

牛客网基础教程文档 在基础学习部分有很多学习资料

廖雪峰和菜鸟教程YYDS

前端指北的mocha:上、中、下

详细的mocha教程, 尝试用VS code再来跑一次

你可能感兴趣的:(Record,学习,javascript)