Copier le plugin dans le test du composant Vue Cypress
P粉725827686
P粉725827686 2023-08-30 19:44:36
0
1
492
<p>J'utilise Cypress pour tester les composants de mon application Vue. Suivre les exemples de code sur https://docs.cypress.io/guides/component-testing/vue/examples#Replicating-Plugins produira plusieurs erreurs, comme indiqué ci-dessous : </p> <pre class="brush:php;toolbar:false;">Argument de type '(ceci : Contexte, composant : ComponentOptionsWithObjectProps<Readonly<ComponentPropsOptions<Data>>, inconnu, {}, ComputedOptions, Record<string, Function>, ... 7 plus ..., { ... } {}>, options ? : MountingOptions<...> | non défini) => Chainable<...>' 'CommandFn<"monter">'. Tapez 'Chainable<{ wrapper : VueWrapper<ComponentPublicInstance<{ [x : numéro] : inconnu } & { longueur en lecture seule ? : nombre | Prop<inconnu, inconnu> Prop<inconnu, inconnu> { (...éléments : ConcatArray<string>[]) : string[]; ConcatArray<...>)[]): string[]; } | null undefin...' n'est pas attribuable au type 'void | Chainable<{ emballage : VueWrapper<ComponentPublicInstance<ExtractPropTypes<Readonly<ComponentPropsOptions<Data>>>, inconnu, {}, ComputedOptions, ... 6 autres ..., {}>> composant : ComponentPublicInstance<...>; }>'. La propriété 'global' n'existe pas sur le type '[options?: MountingOptions<{ [x: number]: inconnu } & { longueur en lecture seule ? : nombre | Prop<inconnu, inconnu> non défini ; Prop<inconnu, inconnu> { (...éléments : ConcatArray<string>[]) : string[]; ConcatArray<...>)[]): string[]; null | Impossible de trouver le nom « Vapp ». Aucune surcharge ne correspond à cet appel. La dernière surcharge a donné l'erreur suivante.</pre> <p>J'utilise TypeScript.Quelqu'un peut-il me fournir un extrait de code fonctionnel ? Mon code est le suivant : </p> <pre class="brush:php;toolbar:false;">importer { createPinia } depuis "pinia" ; importer i18n depuis "../../src/locales/i18n" ; importer {mount} depuis "cypress/vue" ; importer { h } depuis "vue" ; déclarer global { espace de noms Cyprès { interface chaînable { monture : type de monture ; } } } Cypress.Commands.add("mount", (composant, ...args) => { args.global = args.global || {}; args.global.plugins = args.global.plugins || args.global.plugins.push(createPinia()); args.global.plugins.push(i18n); return mount(() => { retourner h (Vapp, {}, composant) }, ...arguments); });</pré> <p>Est-ce que quelqu'un sait comment résoudre ce problème ? Comment appeler cette fonction de montage lorsque je l'utilise dans des tests ? </p>
P粉725827686
P粉725827686

répondre à tous(1)
P粉561323975

J'ai résolu ce problème en utilisant la syntaxe Vue Test Utils. Dans /support/component.ts :

import { mount } from "cypress/vue";

Cypress.Commands.add("mount", (component) => {
  return mount(component, {
    global: {
      plugins: [createPinia(), i18n],
    },
  });
});
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal