问题标签 [vue-testing-library]

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 投票
1 回答
54 浏览

vue.js - Global Guard 中的模拟商店吸气剂不起作用

我创建了一个使用商店中的 getter 的全局守卫。

我试图从商店模拟一些吸气剂以进行测试。问题是嘲笑

不起作用。

我从这个例子中得到启发。

0 投票
1 回答
183 浏览

typescript - Vue Apollo TypeScript:ApolloClient 缺少 websocket 属性

我正在尝试使用 Vue 测试库和 Apollo 设置组件测试,如他们的示例中所述。

但是,当我这样做时,TypeScriptdefaultClient会出现以下错误:

ApolloClient 怎么会错过这些类型,我该如何赋予它这些属性?感觉好像我缺少配置。

0 投票
1 回答
208 浏览

vue.js - Vue测试库,子组件接收props

我正在尝试在 Vuejs 应用程序上实现一些测试库测试,但我无法弄清楚如何将道具传递给测试中的组件。

例如,我想要一个像这样出现在其 ParentComponent 模板内的组件的单元测试。我正在尝试为 ChildComponent 编写单元测试。

我很惊讶 Vue 测试库基本示例中没有涵盖这种情况。让我觉得我错过了一些关于使用/测试 Vuejs 道具的最佳实践。

我想像这样的东西render(ChildComponent, { props: { hereIsAProp: "new info"})应该可以解决问题。但我在文档等中找不到这个。

0 投票
2 回答
190 浏览

vue.js - 状态更改时,Vue 测试库不会重新渲染 DOM

我有一个带有海峡向前编辑按钮的组件。编辑按钮调用设置isEditing为的方法true

有一些输入元素带有v-if="isEditing",所以我正在测试这些输入元素在单击“编辑”按钮后是否可见。

当我的测试运行fireEvent.click(screen.getByRole('link', {name: 'Edit'}))时,它会更新isEditing为 true (基于.click事件之前/之后的我的 console.log 消息),但它似乎没有重新渲染测试中的组件(基于之后在我的终端中呈现的 DOM getByRole 失败)。

它在浏览器中按预期工作,但似乎没有更新规范的 DOM。我正在使用 Vue2、Vue 测试库和 Jest。

执行:

规格:

0 投票
1 回答
526 浏览

vue.js - 使用 Vue Test Utils,我如何检查按钮是否被禁用?

我正在测试一个 Vue 组件,但在测试按钮的禁用状态时遇到问题。如何在我的测试中访问按钮的禁用状态?

我尝试过使用.attributes(),但在这种情况下,该方法仅返回未设置的按钮属性v-bindSubmitButton.attributes().disabled总是null

零件

测试

.attributes() 只返回

0 投票
0 回答
37 浏览

vue.js - 使用 TestingLibrary VueJS 测试面包屑路径

我想测试我创建的组件面包屑。

组件是使用路由器中包含的元数据构建的。我的问题是我的印象是我的测试组件没有考虑到我在渲染中作为参数传递的测试路由器。

您是否有解决方案来测试需要路由器的组件?

这是我的测试路由器:

这是我的测试:

0 投票
0 回答
27 浏览

vue.js - Vuejs 测试库 - 如何编写一个测试来处理“挂载”钩子中的 axios 请求

我有一个 vue 组件,它从“created”函数中的 api 获取数据。我刚刚使用以下测试堆栈启动并运行:

我目前的测试:

我知道 vue 测试库从核心 vue 测试实用程序中抽象出一些方法,所以我只剩下使用 vue 测试库的“渲染”方法了。

我的问题是我应该如何处理 vue created 钩子中的 API 调用。

  1. 是否应该模拟所有 api 调用(以及异步方法?)?
  2. 我如何/在哪里放置等待/异步功能?
  3. 如果我有一个在渲染时自行发出 API 请求的插件(fullcalendar),我将如何模拟/处理它?

如果您需要更多信息,请告诉我,谢谢。

0 投票
0 回答
20 浏览

vue.js - TypeError:_axiosMockAdapter.MockAdapter 不是构造函数

我正在使用 vuejs、vue-testing-library、jest、axios 和 axios-mock-adapter 来测试组件。尝试运行测试时,我立即遇到以下错误:

我的测试:

我究竟做错了什么?另外,这个堆栈非常标准吗?

0 投票
2 回答
27 浏览

vue.js - 如何在使用 Vue 测试库测试 v-autocomplete 时触发“模糊”事件?

我正在为 Vuetify v-autocomplete 包装器组件编写测试,该组件检查模糊时显示的错误消息。但是错误输出显示输入选择保持打开状态并且基本元素具有焦点类。我无法弄清楚我做错了什么。测试代码如下:

0 投票
0 回答
6 浏览

jquery - ReferenceError: jQuery 没有在 vue-testing-library 上开玩笑

我正在尝试对vue-testing-library包含 jQuery UI 的可拖动小部件的文件运行单元测试。我实际上并没有尝试测试可拖动小部件,但这会导致错误,尽管尝试了一些类似问题的建议,但我似乎也无法找到解决方案。

以下是我使用该.draggable函数的代码。

在我的jest.setup.js中,我有以下内容:

我也试过这个:

在这两种情况下,我都会收到以下错误:

这是我的jest.config.js

错误来自jquery-ui/ui/widgets/draggable.js但我不确定为什么它认为jQuery没有定义为当我jQuery在组件上登录时,我可以看到它按预期定义。