Panduan cara untuk menguji unit komponen Vue dan kaedah mengejek menggunakan ViTest
P粉445750942
P粉445750942 2023-08-29 00:23:20
0
1
571
<p>Gunakan vitest untuk mensimulasikan kaedah dan komponen vue ujian unit. </p> <p><em>MyComponent.vue</em></p> <pre class="brush:php;toolbar:false;"><setup script> import { ref } daripada "vue"; const isSelectAll = ref(true); const selectAllModel = ref(false); const onChange = () => isSelectAll.value = benar; selectAllModel.value = palsu; }; const onVisibleChange = () => // buat sesuatu daripada menelefon onChange(); }; </script></pre> <p>Saya ingin menguji kaedah <code>onVisibleChange</code> dengan mengejek <code>onChange</code> </p> <p><em>MyComponent.spec.js</em></p> <pre class="brush:php;toolbar:false;">import { mount } daripada 'vitest'; import { ref } daripada 'vue'; import MyComponent daripada './MyComponent.vue'; describe('MyComponent', () => { pembungkus const = shallowMount(MyComponent); const spy = vi.spyOn(wrapper.vm, 'onChange'); wrapper.vm.onVisibleChange(); expect(spy).toHaveBeenCalled(); expect(wrapper.vm.onChange).toHaveBeenCalled(); // Kedua-dua jangkaan memberikan ralat: AssertionError: dijangka "onChange" akan dipanggil sekurang-kurangnya sekali //Juga mencuba const mock = vi.fn(); wrapper.vm.onChange = olok-olok; wrapper.vm.onVisibleChange(); expect(mock).toHaveBeenCalled(); // AssertionError: dijangka "pengintip" expect(wrapper.vm.onChange).toHaveBeenCalled(); // TypeError: [Function onChange] bukan pengintip atau panggilan kepada pengintip! })</pre></p>
P粉445750942
P粉445750942

membalas semua(1)
P粉311423594

Kaedah ujian bukanlah idea yang baik. Kerana nama fungsi mungkin berubah.

Cara yang lebih baik adalah dengan menguji:

  1. Acara yang dipancarkan daripada komponen. Mungkin onChange() anda mengandungi pemancaran peristiwa. Isu ini harus diuji.
  2. Perubahan dalam templat. Contohnya, onChange() anda menukar templat. Jadi perubahan ini juga harus diuji.
  3. Panggil fungsi lain. Sebagai contoh, anda mempunyai beberapa fungsi yang biasa merentas projek. Fungsi-fungsi ini boleh diuji menggunakan spy.on.
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan