问题描述
我在Vue中进行了测试:
import { shallowMount } from '@vue/test-utils'
import InputComponent from '@/modules/nsignalsimfrontend/components/inputs/InputComponent'
import 'regenerator-runtime/runtime'
describe('InputComponent.vue',() => {
it('test',async () => {
const $t = () => {}
const value = 'Foo'
const wrapper = shallowMount(InputComponent,{
mocks: { $t },propsData: {
value,},})
expect(wrapper.props().value).toBe(value)
const input = wrapper.findComponent({ ref: 'input' })
input.element.value = value
await input.trigger('keyup.enter')
expect(wrapper.emitted().submit).toBeTruthy()
expect(wrapper.emitted().submit[0][0]).toEqual(value)
})
})
当我在本地运行此测试时,可以正常工作,但是当我尝试通过Jenkins构建应用程序时(在构建中我有npm run test:unit
),我遇到了一个错误:
wrapper.findComponent不是函数
我有@ vue / test-utils版本1.0.3
解决方法
我遇到了同样的问题。将@vue/test-utils 从 1.0.0-beta.31 升级到 1.1.2 为我解决了这个问题。
,我在 1.0.0-beta.29 的 @vue/test-utils 上遇到了同样的问题,但您可以使用 wrapper.find() 来通过 ref 进行选择。 示例:wrapper.find({ ref: 'input'}) 如果你想按组件查找,你可以只用 wrapper.find(Component)