Salin pemalam dalam ujian komponen Vue Cypress
P粉725827686
P粉725827686 2023-08-30 19:44:36
0
1
493
<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粉725827686
P粉725827686

membalas semua(1)
P粉561323975

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],
    },
  });
});
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan