问题标签 [vue-test-utils]

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 回答
225 浏览

vue.js - mocha 以编程方式设置 vue 错误处理程序

我发现自己在 mocha 中几乎所有的单元测试开始时都在写这个:

默认情况下,Vue 自己捕获所有错误并将它们记录到控制台,因此 mocha 看不到它们。此代码确保抛出的错误无法通过测试。

mocha 有没有办法做到这一点,而不必用这行代码开始每一个异步测试?如果我必须编写/使用插件,那很好。

0 投票
0 回答
582 浏览

javascript - Vue 测试工具:安装了 TypeError

我遇到了 Vue Test Utils 的问题。当我运行单元测试时,我总是会遇到:

TypeError{line: 73983, sourceURL: ' http://localhost:9876/base/index.js?045b00affe888fcd6b346c4fe50eadd13d471383 ', stack: 'mounted@ http://localhost:9876/base/index.js?045b00affe888fcd6b346c4fe50eadd13d471383:7:7 ......

这只发生在我在 Vue 组件中有mounted() 函数时

设置.vue

Settings.spec.js

我正在使用Mocha & Chaivue-test-utils。有谁知道为什么会这样?

先感谢您!

更新

Settings.vue组件HTML

Settings.vue组件Javascript

0 投票
2 回答
464 浏览

node.js - 无法使用 vue-test-utils 单击 Vue 选择框

我似乎无法使用 vue-test-utils 和 Vue 2 “单击”这些选择框。我使用的是 mocha + webpack。

我通过看到visible-change事件从未像点击时那样触发来确定这一点。这是我的规范文件的样子:

如果这不起作用,作为最后的手段,我必须手动更改model属性以模拟组件更改。

- - 更新 - -

当我为点击事件设置回调时,我看到了一些东西,但我无法在这个选择输入组件中“选择”任何东西。

0 投票
1 回答
7531 浏览

vue.js - vue-test-utils:Vue 子组件方法“不是函数”

在这个测试中,我只是试图断言该end属性是在被测组件上设置的(DateRangeEditor)。该组件假定this.$refs.datepicker是一个实例HotelDatepicker并调用它的setCheckOutsetCheckIn方法(如果有更好的方法可以做到这一点,请告诉我!)。

该组件在浏览器中正常加载时工作,但我的测试setEndDate失败并出现“TypeError:this.$refs.datepicker.setCheckIn is not a function”。

我是否误解了该stubs选项应该做什么设置?我认为像这样的场景,调用代码只需要调用存根函数而不需要特定的结果,正是存根的用途。我只是用错了吗?

这是我的测试:

这是我的(非常简化的)DateRangeEditor组件:

最后,这是我的 setup.js 引导文件:

版本 n 东西

  • @vue/test-utils ^1.0.0-beta.10
  • Vue ^2.4.4
0 投票
4 回答
4633 浏览

unit-testing - 如何在 $route 上对 VueJS 观察器进行单元测试

我正在测试一个使用 vue 路由器观看 $route 的单文件组件。问题是我无法让测试既改变路线又触发观察者的功能。

测试文件:

我在证监会的观察方法:

您如何模拟路由器以使您可以观看它并测试 watch 方法是否按预期工作?

0 投票
1 回答
990 浏览

vue.js - 使用 moxios 和 fakeTimers 测试去抖动的异步请求

我正在尝试以去抖方法测试 axios 调用,但如果我添加假计时器, moxios.wait() 总是会超时。如果去抖时间设置得足够小(例如 10 毫秒),则测试可以在没有时钟的情况下进行,但这无助于测试正确的去抖。我已经尝试过使用 Vue.nextTick 以及对 it() 进行异步回调,但我似乎只是进一步深入杂草。这里的正确方法是什么?

这是一个组件和一个测试,它显示了问题:

0 投票
1 回答
2123 浏览

unit-testing - 如何测试 Vue 组件是否响应 $root 发出的事件?

我有一个组件可以监听 Vue $root 实例发出的事件。

我还有另一个地方是我调用该事件的代码。

如何编写一个在 $root 上调用该事件并断言该事件已被调用的单元测试?我正在使用 Vue 测试工具https://vue-test-utils.vuejs.org/en/并且找不到调用事件的方法。

我试过这个,但它不起作用。

0 投票
3 回答
5088 浏览

vue.js - 测试 Vee-Validate 确认规则

我在使用 Vuetify 构建的 Vue 表单上测试 Vee-Validate 确认功能时遇到了一些困难。我要测试的组件如下所示:

以上工作正常,错误消息正确显示在屏幕上并在密码匹配时删除,但以下测试失败:

从上面的代码可以看出,虽然密码和确认密码字符串匹配,但验证器仍然将确认密码字段标记为有错误。我不明白为什么会这样,但我们将不胜感激。

0 投票
2 回答
3075 浏览

vue.js - 如何对将 DOM 元素附加到 HTML 正文的 Vue 组件进行单元测试?

我有一个 Vue 2.0 组件,它使用来自Vuetify的 Menu 组件。我正在使用官方的vue-test-utils在测试期间挂载我的组件。

我面临的问题是菜单组件将“菜单”附加到 HTML 正文(在组件范围之外)。因此,我无法wrapper.find('.menu')像使用组件中的任何其他元素一样访问它。

有没有一种使用 vue-test-utils 访问附加到正文的元素的好方法?

更新

此时我的组件看起来非常像这个Vuetify codepen 示例

我像这样安装我的组件:

0 投票
2 回答
9738 浏览

vue.js - 如何在 vue-test-utils 中获取按钮文本

如何从找到的元素中检索按钮文本vue-test-utils?我正在使用 v1.0.0-beta.10

例如,在我的 vue 文件中,我有一个按钮,例如:

然后在我的测试中:

我得到一个空对象。更好的是,如何根据按钮文本直接查询该 Vue 组件?