Maison  >  Questions et réponses  >  le corps du texte

Copier le plugin dans le test du composant Vue Cypress

<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粉725827686P粉725827686415 Il y a quelques jours461

répondre à tous(1)je répondrai

  • P粉561323975

    P粉5613239752023-08-31 10:16:55

    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],
        },
      });
    });

    répondre
    0
  • Annulerrépondre