mockjs 的功能是模拟数据:
http://mockjs.com
请问vitest 里面的mocking功能:
https://cn.vitest.dev/guide/mocking
是否是指的和mockjs一样的功能,用于模拟数据使用呢?
也就是说使用了vitest 的mocking功能,就不必再引入mockjs,是吗?
功能上的区别就不提了,估计你想问的也只是关于 AJAX 这一块。
它俩的侧重点和应用的阶段不一样。
前者原理是拦截了浏览器环境下的 XHR,一般是应用在开发阶段,它是跑在浏览器里的。
现在很多都是前后端分离开发,前端所需的数据都通过 AJAX 取自后端接口。那么很多时候就有一个问题,前端需要某些边界场景的数据,后端没有能力提供给你、或者能提供但成本很高,该怎么办?
要是还不能理解,我就随便举几个场景的例子:
这种场景下你要是作为前端,要么就只能等着后端,要么就得自己改代码想办法模拟数据(比如场景二里你把 if 判断条件改了好方便自己触发)。但你等着了 deadline 可不等你;自己模拟数据如果是在视图层改的话侵入性又太强、如果涉及组件多的话可能得改好几处、最后再忘记改回去了可就操蛋了。
于是大家就想,既然直接在视图层里去模拟数据侵入性强,那我在源头 —— 也就是 AJAX 这层 —— 直接给视图层返回一个模拟的响应不就好了?于是 mockjs 就应运而生了。
后者一般应用在测试阶段,或者开发阶段里 CI/CD 流程的单测阶段,它是跑在 Node 里的。
这个就纯粹是单测用例需要模拟数据了,不展开讲了。
至于为啥单测也要模拟数据,那可能就非常多了。比如只是为了验证某流程是否能跑通,并不需要真实地调用接口,否则跑一次单测后端产生一堆垃圾数据,即便有测试环境也挺闹心。或者说这个用例并不跟后端接口强耦合,否则后端的接口一旦挂了,结果你前端的用例跑不通了,不也很奇怪?
答案:
Vitest 的 mocking 功能与 Mock.js 的功能并不完全相同,尽管它们都可以用于模拟数据,但它们的用途和上下文有所不同。
因此,使用了 Vitest 的 mocking 功能,并不意味着你就不需要 Mock.js。如果你的测试场景需要模拟外部数据(如 API 响应),并且你正在使用 AJAX 或 Fetch 等技术来请求这些数据,那么 Mock.js 可能仍然是一个有用的工具。然而,如果你的测试场景主要关注于模块或函数的内部逻辑,并且你只需要模拟这些模块或函数的返回值,那么 Vitest 的 mocking 功能可能就足够了。
简而言之,两者各有其用,选择哪个取决于你的具体需求和测试场景。
1、是否PC没有GPU显卡,就不能使用WebGPU的API?或着说是否是会转移到CPU进行计算导致性能不好? 2、WebGL和WebGPU的关系是什么?
VScode 的终端没有默认的盘符,选择默认配置文件为空, vscode是以管理员身份运行的,且在window PowerShell中是允许执行的,之前还可以用,不知道怎么回事终端就用不了了
vitest测试报错? 按照这篇教程我配置了测试环境来测试react组件,但是报错了,不知道为什么? 环境的介绍 用vite来构建我们的项目 安装vitest、jsdom、@testing-library/react、@testing-library/jsdom 在根目录下创建testSetup.js 修改vite.config.js 修改package.json文件 React组件 测试 报错
问题内容: 创建自己的Activity子类时,我们将覆盖一些基本的Activity生命周期功能。 我们 必须 在其中哪些方法中称为超级实现, 应该 在哪里以及 只有什么好方法 ? 方法列表不是最终的,请随时添加更多功能,在哪里应该知道该怎么做。 问题答案: 必须: 应该/不应该:( 调用超类方法可能会有所帮助,除非您自己管理活动的状态或故意更改活动的行为-在这种情况下可能是有害的) 实际上,重写任
我最近一直在玩Jetpack Compose,我已经完成了这里的基本教程。然后我开始查看他们的Jetnews示例项目。现在我已经准备好开始自己的项目,但现在当我在Jetnewssample项目的同一父目录中创建一个新项目时,Android Studio无法再导入androidx.ui.core。文本或androidx.ui.core.setContent。我可以从同一位置导入其他类,但现在我只收到
watch监听里面使用foreach就陷入死循环,为什么? 我想过滤掉type != 2的数据,不用在表格渲染出来