Дочерние компоненты — визуализация дочерних компонентов — утилиты для тестирования vue

#javascript #unit-testing #nuxt.js #vue-test-utils

Вопрос:

Я пытаюсь модульно протестировать свою домашнюю страницу Vue Test Utils , но мои дочерние компоненты не отображаются

Я использую крепление, поэтому мои дочерние компоненты не должны быть заглушены, но я не знаю, что это такое: <!---->

тест

 it('should be rendered properly', () => {
  const wrapper = mount(Home, { store })

  const html = wrapper.html()

  console.log(wrapper.html())

  expect(html).toMatch('Selecione a opção desejada')
})
 

обертка.hmtl()

  <div>
    <!---->
    <div class="container container--fluid">
      <!---->
      <div class="mb-8">
        <h2 class="text-subtitle-1 text-md-h2 pb-3">
          Selecione a opção desejada:
        </h2>
        <div class="row"></div>
      </div>
      <div class="text-subtitle-1 text-md-h2 mb-3">
        Próximos Agendamentos
      </div>
      <div class="row">
        <div class="col-md-4 col-12">
          <!---->
        </div>
      </div>
    </div>
  </div>
 

Шаблон Home.vue

 <template>
  <div>
    <page-header
      :subtitle="subtitleHeader"
    >
      <template #bottom-element>
        <v-col class="py-0">
          <need-update-alert
            v-if="needUpdate"
          />
        </v-col>
      </template>
    </page-header>
    <v-container fluid>
      <div
        v-if="hasImmediateCareAccess"
        class="mb-8"
      >
        <h2 class="text-subtitle-1 text-md-h2 pb-3">
          <b>Amparo Agora</b>
        </h2>
        <v-row>
          <v-col>
            <option-card v-bind="immediateCare"/>
          </v-col>
        </v-row>
      </div>
      <div class="mb-8">
        <h2 class="text-subtitle-1 text-md-h2 pb-3">
          Selecione a opção desejada:
        </h2>
        <v-row>
          <v-col
            v-for="(card, key) in showableCards"
            :key="key"
            cols="12"
            :md="card.md"
            lg="4"
          >
            <option-card v-bind="card" />
          </v-col>
        </v-row>
      </div>
      <div class="text-subtitle-1 text-md-h2 mb-3">
        Próximos Agendamentos
      </div>
      <v-row v-if="loadingAppointments">
        <v-col
          cols="12"
          md="4"
        >
          <loading-appointments />
        </v-col>
      </v-row>
      <v-row
        v-else-if="hasAppointments"
      >
        <v-col
          class="d-flex align-items-stretch align-content-stretch"
          v-for="item in validAppointments"
          :key="item.id"
          cols="12"
          md="6"
          lg="4"
        >
          <next-appointment-card
            :appointment="item"
          />
        </v-col>
        <v-col
          cols="12"
          md="4"
        >
        </v-col>
      </v-row>
      <v-row
        v-else
      >
        <v-col
          cols="12"
          md="4"
        >
          <no-appointment-card />
        </v-col>
      </v-row>
    </v-container>
  </div>
</template>
 

Комментарии:

1. <!----> является стандартным html-комментарием, vue выведет его вместо условно отображаемого компонента, т. е. v-если

2. Не могли бы вы предоставить код вашего Home компонента?

3. @Эдуардо вот мой шаблон

4. @LawrenceCherone мой PageHeader компонент не отображается условно, у вас есть какие-либо идеи сейчас с моим шаблоном?

5. На самом деле я вижу, что некоторые блоки отображаются условно, например <div v-if="hasImmediateCareAccess" class="mb-8"> , пожалуйста, укажите код, который находится внутри script тега, чтобы мы могли найти, что не так.

Ответ №1:

Это было вызвано моим импортом

Импорт таким образом работает неправильно введите описание изображения здесь

Но импорт таким образом работает

введите описание изображения здесь