TypeError: Tidak dapat membaca 'jenis' sifat null - Menguji komponen vue menggunakan fungsi async
P粉818306280
P粉818306280 2023-08-28 23:34:29
0
1
556
<p>Saya sedang menguji komponen ComponentA.spec.js dan saya mendapat <code>TypeError: Tidak dapat membaca 'jenis' sifat null</code>. Jika saya mengalih keluar kata kunci tunggu dalam fungsi getData() dalam ComponentA, ia berfungsi. Saya mengejek panggilan getData api dalam ujian saya tetapi ia masih tidak berfungsi. </p> <p>Ini ialah timbunan lengkap TypeError: C: [Privasi] Tidak diketahui: Tidak dapat membaca 'jenis' sifat null </p> <pre class="brush:js;toolbar:false;">at assert (node_modules/@babel/types/lib/asserts/generated/index.js:284:112) di Object.assertIdentifier (node_modules/@babel/types/lib/asserts/generated/index.js:373:3) di CatchEntry baharu (node_modules/regenerator-transform/lib/leap.js:93:5) di Emitter.Ep.explodeStatement (node_modules/regenerator-transform/lib/emit.js:535:36) di node_modules/regenerator-transform/lib/emit.js:323:12 di Array.forEach (<tanpa nama>) di Emitter.Ep.explodeStatement (node_modules/regenerator-transform/lib/emit.js:322:22) di Emitter.Ep.explode (node_modules/regenerator-transform/lib/emit.js:280:40) </pra> <p>Ini ialah komponen yang saya cuba buat ujian, A</p> <pre class="brush:js;toolbar:false;"><template> <div class="d-flex flex-row"> <komponen-b /> <komponen-c /> </div> </template> <skrip> import KomponenB daripada './ComponentB'; import ComponentC daripada './ComponentC'; import {getData } daripada 'apis'; eksport lalai { nama: 'komponen-a', komponen: { KomponenB, KomponenC, }, async dicipta() { tunggu this.getData(); }, kaedah: { // Fungsi ini adalah penyebabnya async getData() { cuba { respons const = tunggu getData(); } tangkap { // } }, }, }; </skrip> </pra> <p>Ini ialah fail ComponentA.spec.js saya</p> <pre class="brush:js;toolbar:false;">import Vuetify daripada 'vuetify'; import KomponenA daripada 'komponen/KomponenA'; import { createLocalVue, shallowMount, mount } daripada '@vue/test-utils'; jest.mock('shared/apis', () => { data const = memerlukan('../fixedData/data.json'); kembali { getData: jest.fn().mockResolvedValue(data), }; }); const localVue = createLocalVue(); biarkan vuetify; fungsi createShallowWrapper(pilihan = {}) { kembalikan shallowMount(ComponentA, { localVue, vuetify, ... pilihan, }); } beforeEach(() => { vuetify = Vuetify baharu(); }); describe('ComponentA', () =>> { describe('component creation', () => { ujian('ujian', () => { const wrapper = createShallowWrapper(); expect(wrapper).toMatchSnapshot(); }); }); }); </pra></p>
P粉818306280
P粉818306280

membalas semua(1)
P粉252423906

Menambahkan pembolehubah pengecualian (e) pada tangkapan dalam fungsi getData dalam ComponentA membetulkan isu tersebut.

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