Ale*_*xMA 6 unit-testing vue.js vuex vue-test-utils
我正在阅读Vue Testing Cookbook和Vue Test Utils 的文档,其中涉及使用 Vuex 测试组件。两个来源都建议使用createLocalVue,但我不完全理解为什么。我们已经有一些使用 Vuex 但不使用 的测试createLocalVue,并且它们有效。那么为什么这些来源建议使用createLocalVue?
根据这些消息来源,以下测试似乎是一种不好的做法。这段代码会破坏某些东西吗?它是否会导致我们不知道的不良副作用?
import { mount } from '@vue/test-utils';
import Vuex from 'vuex';
import Component from 'somewhere';
// We don't use this and yet the code seems to work
// const localVue = createLocalVue()
// localVue.use(Vuex)
describe('Foo Component', () => {
let wrapper;
beforeEach(() => {
wrapper = mount(Component, {
// localVue, <-- We don't use this
store: new Vuex.Store({
modules: {
app: {
namespaced: true,
// ... more store stuff
}
}
})
})
});
it('should contain foo', () => {
expect(wrapper.contains('.foo')).toBe(true);
});
});
Run Code Online (Sandbox Code Playgroud)
来自文档:
localVue
createLocalVue:安装组件时使用的Vue 本地副本。在此 Vue 副本上安装插件可防止污染原始 Vue 副本。
在测试中,您可能需要进行特定更改并在测试的 Vue 实例上安装插件。使用localVue可确保每次测试都会重置这些更改。
一个明显的优点是您不必为所有测试安装所有插件。所以你的测试会更快。
另外,当你的测试变得更加复杂时,如果你不使用,localVue你会遇到测试根据其顺序不稳定地失败的情况,因为之前运行的测试即使通过了,也会以一种破坏你的方式修改 Vue 实例。下一次测试。但下一个测试在单独运行时会通过。
通常意味着脱发的错误类型。
使用localVue提供了一种大多数开发人员在运行测试时欢迎的确定性。如果您喜欢冒险,请不要使用它。
这是一个建议,而不是强加。
| 归档时间: |
|
| 查看次数: |
3241 次 |
| 最近记录: |