gpt4 book ai didi

vuejs2 - 如何在cypress组件测试期间包装vue组件?

转载 作者:行者123 更新时间:2023-12-04 11:31:32 25 4
gpt4 key购买 nike

我正在使用 component testing in Cypress on Vue .我的项目组件使用 vuetify plugin .
目前,经过测试的组件使用 Vuetify 加载:

import DebuggingTemporaryComponent from "./DebuggingTemporaryComponent";
import {mount} from "@cypress/vue";
import vuetify from '../../resources/js/vuetify'

it('mounts the component with vuetify', () => {

mount(DebuggingTemporaryComponent,{vuetify,})

cy.contains('Hello World') ✅

}
但是,样式无法正常运行,因为 Vuetify 组件需要包装在 <v-app> 中。在页面上至少一次。在组件测试中,这不会发生。
我需要按照建议自定义包装器 here在 React 等价物的文档中。但是,每当我尝试使用自己的函数来执行此操作时,都会收到一条错误消息,指出相应的 webpack 加载程序不存在。 Vue 加载器在那里并且正在工作。
import {mount as cypressMount} from '@cypress/vue'

export function mount (component){
return cypressMount(<v-app>component</v-app>, prepareComponent(props, options))
}

任何人都可以帮助我下一步该去哪里?

最佳答案

您可以在测试中构造一个简单的包装器,例如
要测试的组件 - Button.vue

<template>
<v-btn color="red lighten-2" dark>
Click Me
</v-btn>
</template>
测试
import Button from "./Button";
import {mount} from "@cypress/vue";
import vuetify from '../plugins/vuetify'
import { VApp } from 'vuetify/lib/components'

const WrapperComp = {
template: `
<v-app>
<Button />
</v-app>
`,
components: {
VApp,
Button
}
}

it('mounts the component with vuetify', () => {

mount(WrapperComp, { vuetify })

const lightRed = 'rgb(229, 115, 115)'
cy.contains('button', 'Click Me') // ✅
.should('have.css', 'background-color', lightRed) // fails if no <v-app> used above
})

关于vuejs2 - 如何在cypress组件测试期间包装vue组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69046663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com