Reactjs 使用axios模拟适配器的原因

Reactjs 使用axios模拟适配器的原因,reactjs,unit-testing,jestjs,axios,axios-mock-adapter,Reactjs,Unit Testing,Jestjs,Axios,Axios Mock Adapter,我是测试axios调用的初学者,并开始使用axios模拟适配器,但我不明白为什么要使用axios模拟适配器 mock.onPost('/api').reply(200, userData, headers); 在这个代码片段中,请求是真的发送到服务器还是仅仅是一个模拟 因为如果我提供了错误的凭证,它会以200状态响应,因为我在“回复”中标识它,返回200 那么,如果我确定了响应状态,那么使用它的原因是什么? 若它并没有真正进入服务器,那个么这似乎是无用的 也许我错过了一些我不知道的事情,因为我

我是测试axios调用的初学者,并开始使用axios模拟适配器,但我不明白为什么要使用axios模拟适配器

mock.onPost('/api').reply(200, userData, headers);
在这个代码片段中,请求是真的发送到服务器还是仅仅是一个模拟

因为如果我提供了错误的凭证,它会以200状态响应,因为我在“回复”中标识它,返回200

那么,如果我确定了响应状态,那么使用它的原因是什么? 若它并没有真正进入服务器,那个么这似乎是无用的

也许我错过了一些我不知道的事情,因为我是新来的,但是应该有人把这个问题的真相告诉我。

回答你的问题 在这个代码片段中,请求是真的发送到服务器还是仅仅是一个模拟

这只是一个模拟。没有请求,只返回回复。这被称为,并且非常流行,对于编写测试非常有用

如果你是新的不同类型的测试,一般来说,是很值得一读

若它并没有真正进入服务器,那个么这似乎是无用的

如果您想测试整个系统:即您的网站+后台逻辑,如身份验证、数据检索等,那么是的,这是无用的。但是你不会用一个模拟的

集成测试通常是针对正在运行的系统执行的,它们很有价值,但很难维护,而且执行速度通常较慢。你不仅要注意你的测试,还要注意数据

你什么时候会使用模拟考试 模拟对于代码的单元测试是必不可少的。模拟有助于将前端代码逻辑与动态行为隔离开来。这使得您可以更轻松地模拟许多场景,而无需维护数据的开销

示例场景 用例 在应用程序中,必须根据REST端点对用户进行身份验证。预计:

当用户成功登录时,注销按钮显示在标题中。 当用户密码过期时,将显示更改密码屏幕。 当用户输入错误的凭据时,将显示警告 当后端没有响应时,将显示一个屏幕,供用户稍后重试 如果没有模拟,您需要确保在身份验证系统中配置了准确的数据。根据经验,我可以告诉你这很难,尤其是2和4

但是,对于mock,您可以只配置mock,以在每个it块中/之前返回您对每个场景期望的响应

这也更容易维护,因为expectation assert/expect语句设置在测试数据mock.reply附近。

回答您的问题 在这个代码片段中,请求是真的发送到服务器还是仅仅是一个模拟

这只是一个模拟。没有请求,只返回回复。这被称为,并且非常流行,对于编写测试非常有用

如果你是新的不同类型的测试,一般来说,是很值得一读

若它并没有真正进入服务器,那个么这似乎是无用的

如果您想测试整个系统:即您的网站+后台逻辑,如身份验证、数据检索等,那么是的,这是无用的。但是你不会用一个模拟的

集成测试通常是针对正在运行的系统执行的,它们很有价值,但很难维护,而且执行速度通常较慢。你不仅要注意你的测试,还要注意数据

你什么时候会使用模拟考试 模拟对于代码的单元测试是必不可少的。模拟有助于将前端代码逻辑与动态行为隔离开来。这使得您可以更轻松地模拟许多场景,而无需维护数据的开销

示例场景 用例 在应用程序中,必须根据REST端点对用户进行身份验证。预计:

当用户成功登录时,注销按钮显示在标题中。 当用户密码过期时,将显示更改密码屏幕。 当用户输入错误的凭据时,将显示警告 当后端没有响应时,将显示一个屏幕,供用户稍后重试 如果没有模拟,您需要确保在身份验证系统中配置了准确的数据。根据经验,我可以告诉你这很难,尤其是2和4

但是,对于mock,您可以只配置mock,以在每个it块中/之前返回您对每个场景期望的响应


这也更容易维护,因为在测试数据mock.reply附近设置了expectation assert/expect语句。

这个答案是gold:Iappreciated@BurakULU很高兴能帮上忙:-这个答案是金色的:Iappreciated@BurakULU很高兴能帮上忙:-