问题标签 [msw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
28 浏览

mocking - 使用 mswjs/data 在工厂中模拟项目时如何在创建时呈现当前索引?

@mswjs/data用来生成一个模拟数据库,我有一个属性order,它是一个介于 0 和length - 1所有条目之间的数字。我想在该属性中呈现当前索引。我正在浏览 GitHub 存储库、Google 和 StackOverflow,但找不到。

那么在模拟条目时如何呈现当前索引?

它只对创建很重要,之后当物品移动时属性会发生变化。

否则,除了当前索引之外,它也可以只是一个介于 0 和条目的最后一个索引之间的随机数,但它必须是唯一的并且不与其他条目共享。

0 投票
0 回答
25 浏览

javascript - 未找到导入:getCleanUrl

我尝试将 MSW 与 '@web/dev-server' 一起使用,并且总是得到一个 Uncaught SyntaxError: import not found: getCleanUrl

即将形成http://localhost:8000/node_modules/msw/lib/esm/RequestHandler-deps.js

我能想到的最简单的例子是:

在 index.html 里面

问题是,当我在 node_modules 文件夹中导航到它时,我可以在浏览器调试器中看到 getCleanUrl。

此外,mockServiceWorker.js 在根目录上设置正确,我可以通过导航到它http://localhost:8000/mockServiceWorker.js

所以我很困惑为什么浏览器抱怨找不到它..

0 投票
0 回答
85 浏览

javascript - 重构此函数以始终返回相同的类型

我正在使用带有测试库的msw并尝试模拟 API 调用以返回 JSON 文件的内容。

使用文档中的示例,我正在尝试以下代码:

但我一直让 SonarQube 抱怨:

重构此函数以始终返回相同的类型。

知道为什么以及如何重构这个函数吗?

非常感谢。

0 投票
0 回答
85 浏览

testing - 使用 MSW 模拟 GraphQL API 以进行测试

我正在尝试模拟 graphql API 以测试反应应用程序但面临问题

处理程序是:

定义捕获相应请求并返回模拟数据的处理程序。

我的测试文件:

但遇到了这个错误:

我将不胜感激任何帮助谢谢

0 投票
2 回答
121 浏览

reactjs - 使用 React、Jest、React-Testing-Library 测试失败案例

对于这个测试用例,我正在测试一个表单,以查看表单提交后是否在 DOM 中出现错误消息,并且服务器的响应返回错误。我正在使用“MSW”(Mocked Service Worker JS)来模拟表单的 API 请求和响应。在终端中,每当我用 jest 运行测试时,它都会失败,但是在我在测试中设置 screen.debug() 之后,我编写了检查错误消息是否存在,我发现错误消息实际上存在。

测试用例失败并显示以下消息:

这是测试:

这是模拟服务器的请求处理程序:

0 投票
2 回答
67 浏览

javascript - 模拟服务人员,悲伤的路径测试失败

最近只是使用 Mock Service Worker 来测试我的 HTTP 请求,我正在寻找测试我的失败路径。

我的第一个测试通过(很高兴),但我收到的失败错误是“JSON 输入意外结束”

它确实以我想要的方式运行,但从测试的角度来看,我有点困惑。

我怎样才能让我的失败路径通过测试?

我的测试文件

我的 fetch 异步功能

0 投票
1 回答
111 浏览

service-worker - webpack 模块联合环境中的服务工作者

我有一个带有 webpack 模块联合、一个容器应用和一个远程的小型设置。遥控器完全暴露自己,并且容器在单击导航链接(如/users.

容器在 处可达localhost:8080,远程在localhost:3001

现在,遥控器正在使用模型服务工作者(https://mswjs.io/),直接访问应用程序时效果很好。通过容器调用时,出现错误:

我也尝试设置范围

解决了一个错误

有没有人有这方面的经验?在具有模块联合的遥控器中使用服务人员?如何在容器中调用它们?

0 投票
1 回答
49 浏览

reactjs - React 测试库 - 组件未使用的 Mock Service Worker 响应

我有一个应用程序可以获取用户列表并显示它们。该应用程序按预期工作,但测试失败:

用户.js

我已经使用此处列出的步骤设置了 MSW 。

handlers.js

服务器.js

setupTests.js

用户.test.js

我错过了什么?测试渲染的输出不显示模拟响应数据。

TestingLibraryElementError:无法找到带有文本的元素:Xavi Alonzo

0 投票
1 回答
166 浏览

reactjs - 当 msw (Mock Service Worker) 拦截请求时,Fetch 永远不会返回数据

我目前正在使用 next/jest 设置我的环境,使用 msw 和 @testing@library/react。我的测试看起来像:

我的 jest.config.js 看起来像:

我的 setup-env.js 看起来像这样:

我的组件看起来像这样......

但是,当我运行测试时,出现以下错误...

但是,当我重视 dataInfo.data 时,它始终是未定义的。

我有一个 SWR 使用的 fetcher 函数,如下所示:

但是,它永远不会到达第二个控制台,在请求被拦截后请求之后。

0 投票
1 回答
57 浏览

reactjs - React/Jest/MSW 使用 act() 等待响应抛出错误

目前,我正在学习如何使用 React 进行单元测试。但是,我想用 TypeScript 来学习它,所以本课程没有涵盖 TS 中出现的大多数错误。

我有一个使用 Mock Service Worker (msw) 配置的简单测试功能:

从理论上讲,这“有效”(它在测试列表中显示为通过),但在它上面会发生错误,例如:

userEvent.click(button)因此,当我换行时act(() => userEvent.click(button)),它会一直显示此错误消息。

点击 userEvent 触发一个 onSubmit 处理程序:

我在这里做错了什么?另外,有没有办法在不使用超时的情况下等待已解决的承诺?这种方式感觉有点hacky。