欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

在vue-test-utils中mock全局對(duì)象怎么用

小編給大家分享一下在vue-test-utils中mock全局對(duì)象怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

龍山ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

vue-test-utils   提供了一種 mock 掉   Vue.prototype   的簡單方式,不但對(duì)測(cè)試用例適用,也可以為所有測(cè)試設(shè)置默認(rèn)的 mock。

mocks   加載選項(xiàng)

mocks   加載選項(xiàng)   是一種將任何屬性附加到   Vue.prototype   上的方式。這通常包括:

  • $store , for Vuex

  • $router , for Vue Router

  • $t , for vue-i18n

以及其他種種。

vue-i18n   的例子

我們來看一個(gè) vue-i18n   的例子。雖然可以為每個(gè)測(cè)試用到   createLocalVue   并安裝   vue-i18n ,但那樣可能會(huì)讓事情難以處理并引入一堆樣板。首先,組件   <Bilingual>   用到了   vue-i18n :

<template>
 <div class="hello">
  {{ $t("helloWorld") }}
 </div>
</template>

<script>
 export default {
  name: "Bilingual"
 }
</script>

你先在另一個(gè)文件中弄好翻譯,然后通過 $t   引用,這就是   vue-i18n   的工作方式。在本次測(cè)試中,雖然并不會(huì)真正關(guān)心翻譯文件看起來什么樣,不過還是看一看這次用到的:

export default {
 "en": {
  helloWorld: "Hello world!"
 },
 "ja": {
  helloWorld: "こんにちは、世界!"
 }
}

基于這個(gè) locale,正確的翻譯將被渲染出來。我們先不用 mock,嘗試在測(cè)試中渲染該組件:

import { shallowMount } from "@vue/test-utils"
import Bilingual from "@/components/Bilingual.vue"

describe("Bilingual", () => {
 it("renders successfully", () => {
  const wrapper = shallowMount(Bilingual)
 })
})

通過 yarn test:unit   運(yùn)行測(cè)試將拋出一堆錯(cuò)誤堆棧。若仔細(xì)端詳輸出則會(huì)發(fā)現(xiàn):

[Vue warn]: Error in config.errorHandler: "TypeError: _vm.$t is not a function"

這是因?yàn)槲覀儾⑽窗惭b vue-i18n ,所以全局的   $t   方法并不存在。我們?cè)囋?nbsp;  mocks   加載選項(xiàng):

import { shallowMount } from "@vue/test-utils"
import Bilingual from "@/components/Bilingual.vue"

describe("Bilingual", () => {
 it("renders successfully", () => {
  const wrapper = shallowMount(Bilingual, {
   mocks: {
    $t: (msg) => msg
   }
  })
 })
})

現(xiàn)在測(cè)試通過了! mocks   選項(xiàng)用處多多,而我覺得最最常用的正是開頭提到過的那三樣。

(譯注:通過這種方式就不能在單元測(cè)試中耦合與特定語言相關(guān)的內(nèi)容了,因?yàn)榉g功能實(shí)際上已失效,也更無法處理可選參數(shù)等)

使用配置設(shè)置默認(rèn)的 mocks

有時(shí)需要一個(gè) mock 的默認(rèn)值,這樣就不用為每個(gè)測(cè)試用例都設(shè)置一遍了。可以用 vue-test-utils   提供的   config   API 來實(shí)現(xiàn)。還是   vue-i18n   的例子:

import VueTestUtils from "@vue/test-utils"

VueTestUtils.config.mocks["mock"] = "Default Mock Value"

這個(gè)示例中用到了 Jest,所以我將把默認(rèn) mock 描述在 jest.init.js   文件中 -- 該文件會(huì)在測(cè)試運(yùn)行前被自動(dòng)加載。同時(shí)我也會(huì)導(dǎo)入并應(yīng)用此前用于示例的翻譯對(duì)象。

//jest.init.js

import VueTestUtils from "@vue/test-utils"
import translations from "./src/translations.js"

const locale = "en"

VueTestUtils.config.mocks["$t"] = (msg) => translations[locale][msg]

現(xiàn)在盡管還是用了一個(gè) mock 過的 $t   函數(shù),但會(huì)渲染一個(gè)真實(shí)的翻譯了。再次運(yùn)行測(cè)試,這次移除了   mocks   加載選項(xiàng)并用   console.log   打印了   wrapper.html() 。

describe("Bilingual", () => {
 it("renders successfully", () => {
  const wrapper = shallowMount(Bilingual)

  console.log(wrapper.html())
 })
})

測(cè)試通過,以下結(jié)構(gòu)被渲染出來:

<div class="hello">
 Hello world!
</div>

以上是“在vue-test-utils中mock全局對(duì)象怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

網(wǎng)頁題目:在vue-test-utils中mock全局對(duì)象怎么用
標(biāo)題鏈接:http://aaarwkj.com/article38/gdiisp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、定制網(wǎng)站、響應(yīng)式網(wǎng)站、虛擬主機(jī)、網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)
久久精品无人区乱码一区二区| 日本免费一区二区三个| 午夜激情视频免费国产| 婷婷色综合一区二区三区| 国产欧美日本综合一区| 国产成人综合久久三区北岛玲| 中文字幕一区二区三区精彩视频| 高潮的毛片激情久久精品| 九九九热精品视频在线观看| 国产精品国产一级国产av| 四虎影院成人精品久久| 国产亚洲一区二区三区午夜| 色国产精品一区在线观看| 国产美女直播亚洲一区色| 免费观看国产性生活片| 国产麻豆成人传媒免费观看| 日韩新片一区二区三区| 91九色中文视频在线观看| 国产无遮挡的免费视频| 亚洲免费黄色大片网站| 熟妞人妻精品一区二区视频| 国产成人亚洲精品另类动态| 亚洲国产精品成人久久66| 久久伊人69日韩精品| 顶级少妇做爰片高潮丸| 亚洲av日韩av一区| 欧美日韩一区二区三区色| 欧美丰满人妻少妇视频在线| 国产精品亚洲精品欧美| 中文字幕女同系列av厨房| 中文字幕中文字幕乱码| 免费观看欧美日韩论理电影| 91九色国产在线视频| 99久久免费热在线观看| 亚洲欧美日韩国产精品专区| 国产男女爱猛视频在线| 美国一级黄片在线观看| 老汉av免费在线观看| 亚洲成av人的天堂在线观看女人| 国产精品一区波多野结衣| 日本熟女午夜福利视频|