代码之家  ›  专栏  ›  技术社区  ›  unrated

如何使用jest在单元测试中渲染vuetify 3的snackbar插槽

  •  0
  • unrated  · 技术社区  · 1 年前

    有人知道我如何在vuetify 3的小吃摊上测试动作槽吗? 在官方文档中的第一个示例中,您可以在小吃栏中添加一个按钮 https://vuetifyjs.com/en/components/snackbars/ 在我的单元测试中,只渲染了snackbar。

    UiMessage.vue

    <template>
      <div class="text-center">
        <v-snackbar v-model="show" vertical centered :color="getType()" :timeout="getTimeout(getType())">
          {{ getMessage() }}
          <template #actions>
            <v-btn color="indigo" variant="text" @click="removeErrorMessage()"> {{ closeButtonText }} </v-btn>
          </template>
        </v-snackbar>
      </div>
    </template>
    

    单元测试

    import { VueWrapper, mount } from '@vue/test-utils';
    import { createVuetify } from 'vuetify';
    
    const vuetify = createVuetify();
    let wrapper: VueWrapper;
    
    async function createWrapper() {
      wrapper = mount(UiMessage, {
        propsData: { closeButtonText },
        global: {
          plugins: [vuetify],
        },
      });
      await wrapper.vm.$nextTick();
      return wrapper;
    }
    
    test('Check close button text.', async () => {
      wrapper = await createWrapper();
      console.log(wrapper.html());
      const buttonText = wrapper.find('.v-btn').text();
      expect(buttonText).toBe(closeButtonText);
    });
    

    包装器.html()

      <div class="text-center">
          <v-snackbar modelvalue="true" vertical="" centered="" color="" timeout="2000"> </v-snackbar>
        </div>
    
    0 回复  |  直到 1 年前