Dalam ujian unit API gabungan Vue 3, didapati bahawa $route tidak ditakrifkan dalam cangkuk onMounted()
P粉668146636
P粉668146636 2023-08-26 08:54:29
0
1
496
<p>Saya mempunyai <code>onMounted()</code> dalam fungsi <code>setup()</code> yang mengakses <code>$params</code> ; tetapi apabila saya mengejek objek <kod>$laluan</kod> <kod>undefined</code>, jadi ralat dilemparkan. Berikut ialah kodnya: </p> <p><strong>Component.vue:</strong></p> <pre class="brush:php;toolbar:false;"><template> <div>{{ this.$route.params.id }}</div> </template> <skrip lang="ts"> import {defineComponent, onMounted} daripada 'vue' import {useRoute} daripada "vue-router"; eksport lalai defineComponent({ nama: 'Komponen', persediaan() { laluan const = useRoute() onMounted(() => { console.log(route.params.id) }) kembali {} } }) </script></pre> <p><strong>component.spec.ts:</strong></p> <pre class="brush:php;toolbar:false;">import {mount} daripada "@vue/test-utils"; import Komponen daripada "@/views/Bundle/Component.vue"; test('keterangan ujian', async () ==> { const mockRoute = { params: { ID: 1 } } const mockRouter = { tolak: jest.fn() } pembungkus const = lekapkan(Komponen, { global: { mengejek: { $route: mockRoute, $router: mockRouter } } }) tunggu wrapper.find('button').trigger('click') })</pre> <p><strong>Ralat Lemparan: </strong> <p>Saya menggunakan versi vue-test-utils 2.0.0-rc.12. </p> <p>Sebarang bantuan amatlah dihargai</p>
P粉668146636
P粉668146636

membalas semua(1)
P粉739079318

Masalahnya ialah apabila menggunakan API komposit, pilihan pelekap (dan oleh itu juga simulasi $route dan $router) tidak diambil kira.

Sebagai contoh, apabila anda melihat sifat matched laluan (dalam komponen), tatasusunan akan kosong kerana tiada laluan yang sepadan dan tiada konteks penghalaan tersedia. Tetapi mereka mengemas kini dokumentasi dan anda boleh melihat contoh di sana.

Saya tertanya-tanya jika ada cara yang tidak penting untuk mensimulasikan setiap ujian...

Penghalaan olok-olok menggunakan API komposisi

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan