【问题标题】:vue.js vuetify : test-utils w Jest how to match text when using iconvue.js vuetify : test-utils w Jest 如何在使用图标时匹配文本
【发布时间】:2019-02-01 16:11:47
【问题描述】:

给定以下生成的 html

<a href="#" class="primaryInversed v-btn v-btn--large v-btn--round"
   <div class="v-btn__content">STOP!
      <i aria-hidden="true" class="v-icon v-icon--right material-icons">pause_circle_outline</i>
   </div>
</a>

当我使用 .toEqual Jest 匹配器进行测试时

console.log(playLink.text())
expect(playLink.text()).toEqual("STOP!");

测试因图标而失败

  console.log tests/unit/Heading.spec.js:46
    STOP!
          pause_circle_outline

如果我使用 .toMatch 观察者,它不会失败

expect(playLink.text()).toMatch(/STOP!/);

这是要编写的正常测试还是要使用 .toEqual 观察者?

注意:我使用 'mount' 而不是 'shallowMount' 因为我需要从 vuetify 组件生成 html

感谢反馈

【问题讨论】:

    标签: unit-testing vue.js jestjs vuetify.js vue-test-utils


    【解决方案1】:

    一种技术是将&lt;v-btn&gt; 的文本内容包装在&lt;span&gt; 中,并使用wrapper.find(selector) 选择&lt;span&gt; 以获取其文本:

    foo.vue 模板:

    <v-btn>
      <span class="text">STOP!</span>
      <v-icon>pause_circle_outline</v-icon>
    </v-btn>
    

    foo.spec.js

    it('contains the expected text', () => {
      expect(wrapper.find('.text').text()).toEqual('STOP!');
    });
    

    demo

    【讨论】:

      猜你喜欢
      • 2019-02-10
      • 2019-02-10
      • 1970-01-01
      • 2019-03-04
      • 2018-08-06
      • 2022-08-18
      • 2022-11-25
      • 2018-09-01
      • 2019-05-28
      相关资源
      最近更新 更多