You’re browsing the documentation for Vue Test Utils for Vue v2.x and earlier.
To read docs for Vue Test Utils for Vue 3, click here.
shallowMount()
引数:
{Component} component
{Object} options
{boolean} attachToDocument
{Object} context
{Array<Component|Object>|Component} children
{Object} slots
{Array<Component|Object>|Component|String} default
{Array<Component|Object>|Component|String} named
{Object} mocks
{Object|Array<string>} stubs
{Vue} localVue
戻り値:
{Wrapper}
オプション:
オプションを参照してください。
- 使い方:
mount
のようにマウントされて描画された Vue コンポーネントを含む Wrapper
を生成しますが、
子コンポーネントはスタブされたコンポーネントです。
オプションなし:
import { shallowMount } from '@vue/test-utils'
import Foo from './Foo.vue'
describe('Foo', () => {
it('renders a div', () => {
const wrapper = shallowMount(Foo)
expect(wrapper.contains('div')).toBe(true)
})
})
Vue オプションを使用:
import { shallowMount } from '@vue/test-utils'
import Foo from './Foo.vue'
describe('Foo', () => {
it('renders a div', () => {
const wrapper = shallowMount(Foo, {
propsData: {
color: 'red'
}
})
expect(wrapper.props().color).toBe('red')
})
})
DOM へのアタッチ:
import { shallowMount } from '@vue/test-utils'
import Foo from './Foo.vue'
describe('Foo', () => {
it('renders a div', () => {
const wrapper = shallowMount(Foo, {
attachToDocument: true
})
expect(wrapper.contains('div')).toBe(true)
})
})
デフォルトおよび名前付きスロット:
import { shallowMount } from '@vue/test-utils'
import Foo from './Foo.vue'
import Bar from './Bar.vue'
import FooBar from './FooBar.vue'
describe('Foo', () => {
it('renders a div', () => {
const wrapper = shallowMount(Foo, {
slots: {
default: [Bar, FooBar],
fooBar: FooBar, // <slot name="FooBar" /> と一致する,
foo: '<div />'
}
})
expect(wrapper.contains('div')).toBe(true)
})
})
グローバルプロパティのスタブ:
import { shallowMount } from '@vue/test-utils'
import Foo from './Foo.vue'
describe('Foo', () => {
it('renders a div', () => {
const $route = { path: 'http://www.example-path.com' }
const wrapper = shallowMount(Foo, {
intercept: {
$route
}
})
expect(wrapper.vm.$route.path).toBe($route.path)
})
})