Bur*_*ULU 1 unit-testing reactjs jestjs axios axios-mock-adapter
我是测试 axios 调用的初学者并开始使用 axios-mock-adapter,但我不明白为什么我们使用 axios-mock-adapter。
mock.onPost('/api').reply(200, userData, headers);
Run Code Online (Sandbox Code Playgroud)
在这个代码片段中,请求是真的发送到服务器还是只是一个模拟?
因为如果我提供错误的凭据,它会以 200 状态响应,因为我在“回复”中识别它以返回 200。
那么如果我确定了响应状态,使用它的原因是什么?如果它真的不去服务器,这似乎是没有用的。
也许我错过了一些我不知道的东西,因为我是新手,但应该有人把这个问题放在我的脑海里。
在这个代码片段中,请求是真的发送到服务器还是只是一个模拟?
这只是一个模拟。没有请求,只返回“回复”。这称为模拟并且非常流行并且对于编写测试非常有用。
如果您不熟悉一般不同类型的测试,那么这个答案非常值得一读。
如果它真的不去服务器,这似乎是没有用的。
如果您想作为一个整体来测试系统:即您的网站 + 后端逻辑(如身份验证、数据检索等),那么是的,这是无用的。但是你不会为此使用模拟。
集成测试通常针对正在运行的系统执行,它们很有价值,但很难维护并且通常执行速度较慢。您不仅要处理测试,还要处理数据。
模拟对于单元测试你的代码是必不可少的。模拟有助于将前端代码逻辑与动态行为隔离开来。这使您可以更轻松地模拟许多场景,而无需维护数据的开销。
用例 在您的应用程序中,您必须针对 REST 端点对用户进行身份验证。预计:
如果没有模拟,您需要确保在身份验证系统中配置了准确的数据。根据经验,我可以告诉你这很难,尤其是 #2 和 #4。
但是对于模拟,您可以只配置模拟以在每个 it()块中/之前为每个场景返回您期望的响应。
这也更容易维护,因为期望(断言/期望语句)设置在测试数据附近(mock.reply())。
| 归档时间: |
|
| 查看次数: |
914 次 |
| 最近记录: |