news 2026/8/29 7:59:20

10分钟读懂RealWorld:一套API测试集验收你的Medium克隆版

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
10分钟读懂RealWorld:一套API测试集验收你的Medium克隆版

10分钟读懂RealWorld:一套API测试集验收你的Medium克隆版

【免费下载链接】realworld"The mother of all demo apps" — Exemplary fullstack Medium.com clone powered by React, Angular, Node, Django, and many more项目地址: https://gitcode.com/GitHub_Trending/re/realworld

RealWorld是Medium.com克隆版背后的规格与验收测试中心,负责统一所有实现共用的API契约。读完后你能做到:对自己的后端跑一遍官方API测试套件、在本地启动文档站点、用共享E2E套件验收前端实现。

项目定位:它是什么,能干什么

这个仓库不是一个可运行的应用,而是RealWorld家族的"评分规则",主要帮你干三件事:

  • 验收你的后端:基于OpenAPI契约specs/api/openapi.yml,配套Hurl测试集覆盖文章、评论、收藏、信息流、分页和错误码,全部通过即代表你的API合规。
  • 验收你的前端:specs/e2e/下的共享Playwright测试套件加选择器约定SELECTORS.md,直接拷进你的工程就能用。
  • 本地化官方文档:docs/目录是Astro/Starlight搭建的文档站源码,所有规范文档都能本地预览和修改。

技术栈一句话:后端用Hurl和Bruno做接口验证,前端用Playwright做端到端验证,文档用Astro。核心目录:

specs/ ├── api/ # API契约与测试集 │ ├── openapi.yml # OpenAPI契约(唯一事实来源) │ ├── hurl/ # Hurl用例(验收基准) │ └── bruno/ # 由Hurl生成的Bruno集合 └── e2e/ # Playwright E2E测试与选择器约定 docs/ # Astro文档站源码 Makefile # 统一命令入口,跑make help查看

快速上手:三步跑通全流程

前置条件:本仓库统一用bun做包管理,先装好再动手。

第1步,克隆仓库:

git clone https://gitcode.com/GitHub_Trending/re/realworld cd realworld

完成后在目录里执行ls,应能看到specs、docs、Makefile、CONTRIBUTING.md这几项。

第2步,启动文档站:

make documentation-setup make documentation-dev

完成后浏览器里会打开一个本地Starlight站点,能浏览后端与前端的全部规范文档。

第3步,对着自己的后端跑API测试:

cd specs/api HOST=http://localhost:3000/api ./run-api-tests-hurl.sh

完成后articles、auth、comments等用例应批量通过,说明你的API通过了RealWorld验收。

跑起来之后先玩什么

  1. 🧩先试API测试:用Bruno应用打开Bruno集合,按articlesauthfavorites分组逐个查看请求与断言,比看YAML直观得多。
  2. 🔍再读契约:翻一遍specs/api/openapi.yml确认响应格式与错误码,文本文档与测试集并存时,以测试集为准。
  3. 🕹️然后接入你的工程:把specs/e2e/下的Playwright套件拷走,继承specs/e2e/playwright.base.ts(重写baseURL与webServer),就拿到一套现成的前端回归测试。

常见卡点速查

Bruno集合与Hurl用例不一致—— 不要手改specs/api/bruno/目录,用make bruno-check诊断、make bruno-generate重新生成。

API测试脚本整体报错—— HOST必须指向带/api后缀的已启动服务,例如HOST=http://localhost:3000/api,说明见specs/api/README.md。

文档站安装失败—— Makefile内部用的是bun而非npm,先装bun再执行make documentation-setup

接下来看什么

  • OpenAPI API契约:specs/api/openapi.yml
  • Hurl API测试集(事实来源):specs/api/hurl/
  • Bruno交互式测试集合:specs/api/bruno/
  • Playwright E2E前端测试集:specs/e2e/
  • 贡献指南:CONTRIBUTING.md

契约和测试集都拿在手里了,去写你自己的RealWorld实现吧。

【免费下载链接】realworld"The mother of all demo apps" — Exemplary fullstack Medium.com clone powered by React, Angular, Node, Django, and many more项目地址: https://gitcode.com/GitHub_Trending/re/realworld

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/29 7:50:57

GPS/INS松组合导航:原理、实现与卡尔曼滤波实战

简介:本资源是一套面向导航算法工程师、惯导系统开发者及高校相关专业研究生的GPS/INS松组合导航实践材料,聚焦位置级数据融合与卡尔曼滤波实现,解决单一传感器定位漂移、信号遮挡下导航中断等典型工程问题。压缩包共9个文件(679K…

作者头像 李华
网站建设 2026/8/29 7:50:47

【单片机】状态机的使用

状态机分有限状态机和层次状态机,有限状态机是单层,层次状态机是多层。 实用性上考虑,FSM用switch-case即可,一般是先判断状态,再在每个状态的处理中判断消息。如果代码量太多,可以考虑先判断消息&#xf…

作者头像 李华
网站建设 2026/8/29 7:50:46

从NE555到单片机定时器:蓝桥杯竞赛中的定时原理与实战应用

1. 从“会用”到“懂它”:NE555在蓝桥杯中的角色再审视 最近在复盘蓝桥杯单片机的备赛笔记,翻到NE555方波发生器这一块,心里咯噔一下。当初备赛,面对这个经典的“老家伙”,我的策略简单粗暴:记住典型电路、…

作者头像 李华
网站建设 2026/8/29 7:50:43

STM32 DAC实战指南:从基础原理到高精度波形输出

1. 从数字到模拟:DAC在嵌入式中的角色与价值在嵌入式开发,尤其是基于STM32这类MCU的项目中,我们经常需要处理两类信号:数字信号和模拟信号。MCU的CPU核心、GPIO口、串口通信,它们的世界是0和1,是离散的数字…

作者头像 李华
网站建设 2026/8/29 7:50:03

LDPC信道编码算法:从稀疏矩阵到置信传播的工程实现

简介:本资源是面向电子信息工程、计算机及数学等专业本科生的LDPC码非二进制(Nb-LDPC)编译码算法MATLAB实现方案,适用于课程设计、期末大作业与毕业设计等实践环节,解决高阶有限域下稀疏校验矩阵构造、消息传递译码及性…

作者头像 李华
网站建设 2026/8/29 7:49:40

Semantica Quickstart避坑指南:新手最常犯的5个错误及解决方案

Semantica Quickstart避坑指南:新手最常犯的5个错误及解决方案 【免费下载链接】semantica Graph-Native Infrastructure for Context and Accountable AI Systems 项目地址: https://gitcode.com/GitHub_Trending/sema/semantica Semantica 是一个开源的&qu…

作者头像 李华