cari

Rumah  >  Soal Jawab  >  teks badan

Salin pemalam dalam ujian komponen Vue Cypress

<p>Saya menggunakan Cypress untuk menguji komponen aplikasi Vue saya. Mengikuti contoh kod di https://docs.cypress.io/guides/component-testing/vue/examples#Replicating-Plugins akan menghasilkan beberapa ralat, seperti yang disenaraikan di bawah: </p> <pre class="brush:php;toolbar:false;">Argumen jenis '(ini: Konteks, komponen: ComponentOptionsWithObjectProps<Readonly<ComponentPropsOptions<Data>>, tidak diketahui, {}, ComputedOptions, Rekod<rentetan, Fungsi>, ... 7 lagi ..., { ...;, pilihan?: MountingOptions<...> undefined) => 'CommandFn<"mount">'. Taip 'Chainable<{ wrapper: VueWrapper<ComponentPublicInstance<{ [x: number]: unknown } & panjang baca sahaja?: nombor |. Prop<tidak diketahui> Prop<tidak diketahui, tidak diketahui> |. { (...item: ConcatArray>[]): rentetan[]; ConcatArray<...>)[]): rentetan[]; } | boleh dirantai<{ pembungkus: VueWrapper<ComponentPublicInstance<ExtractPropTypes<Readonly<ComponentPropsOptions<Data>>>, tidak diketahui, {}, ComputedOptions, ... 6 lagi ..., {}>>; komponen: ComponentPublicInstance<...>; }>'. 'global' harta tidak wujud pada jenis '[options?: MountingOptions<{ [x: number]: unknown } & { panjang baca sahaja?: nombor |. tidak diketahui> Prop<tidak diketahui, tidak diketahui> |. { (...item: ConcatArray>[]): rentetan[]; ConcatArray<...>)[]): rentetan[]; } |. Tidak dapat mencari nama 'Vapp'. Tiada beban berlebihan sepadan dengan panggilan ini. Lebihan beban terakhir memberikan ralat berikut.</pre> <p>Saya menggunakan TypeScript.Bolehkah seseorang memberikan saya coretan kod yang berfungsi? Kod saya adalah seperti berikut: </p> <pre class="brush:php;toolbar:false;">import { createPinia } daripada "pinia"; import i18n dari "../../src/locales/i18n"; import { mount } daripada "cypress/vue"; import { h } daripada "vue"; mengisytiharkan global { ruang nama Cypress { antara muka boleh rantai { mount: typeof mount; } } } Cypress.Commands.add("mount", (komponen, ...args) => { args.global = args.global ||. args.global.plugins = args.global.plugins ||. args.global.plugins.push(createPinia()); args.global.plugins.push(i18n); lekapkan kembali(() => { kembalikan h(Vapp, {}, komponen) }, ...args); });</pre> <p>Adakah sesiapa tahu cara membetulkannya? Bagaimanakah saya boleh memanggil fungsi pelekap ini apabila menggunakannya dalam ujian? </p>
P粉725827686P粉725827686455 hari yang lalu501

membalas semua(1)saya akan balas

  • P粉561323975

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

    Saya menyelesaikan masalah ini menggunakan sintaks Vue Test Utils. Dalam /support/component.ts:

    import { mount } from "cypress/vue";
    
    Cypress.Commands.add("mount", (component) => {
      return mount(component, {
        global: {
          plugins: [createPinia(), i18n],
        },
      });
    });

    balas
    0
  • Batalbalas