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

在vue-test-utils中mock全局對象怎么用-創(chuàng)新互聯(lián)

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

在咸寧等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供做網(wǎng)站、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需網(wǎng)站建設(shè),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè),咸寧網(wǎng)站建設(shè)費用合理。

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

mocks   加載選項

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

  • $store , for Vuex

  • $router , for Vue Router

  • $t , for vue-i18n

以及其他種種。

vue-i18n   的例子

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

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

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

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

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

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

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

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

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

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

這是因為我們并未安裝 vue-i18n ,所以全局的   $t   方法并不存在。我們試試   mocks   加載選項:

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)在測試通過了! mocks   選項用處多多,而我覺得最最常用的正是開頭提到過的那三樣。

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

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

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

import VueTestUtils from "@vue/test-utils"

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

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

//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)在盡管還是用了一個 mock 過的 $t   函數(shù),但會渲染一個真實的翻譯了。再次運行測試,這次移除了   mocks   加載選項并用   console.log   打印了   wrapper.html() 。

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

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

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

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

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

文章名稱:在vue-test-utils中mock全局對象怎么用-創(chuàng)新互聯(lián)
標題網(wǎng)址:http://www.aaarwkj.com/article8/jcgip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄手機網(wǎng)站建設(shè)、響應(yīng)式網(wǎng)站、網(wǎng)站營銷、域名注冊小程序開發(fā)

廣告

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

搜索引擎優(yōu)化
国产精品网站在线观看| 久久成人av一区二区三区| 日本乱一区二区三区在线| 午夜免费视频观看在线| 国产精品免费视频一区二区三区 | 亚洲一区二区精品91眼镜| 日韩亚洲国产欧美在线观看| 婷婷综合伊人久久狠狠| 久久精品亚洲精品毛片| 亚洲成av人天堂影院| 激情网站免费在线观看| 韩国黄色三级一区二区| 少妇熟女视频一区二区三区| 高清免费欧美大片在线观看| 日本一区二区精品视频| 久草免费福利视频资源站| 亚洲av色福免费网站| 粉嫩一区二区三区av| 精品午夜免费福利视频| 最近av中文字幕电影| 久久婷婷av一区二区三区| 国产精品自拍小视频91| 国产成人av网站在线观看| 国产三级在线观看视频| 国产在线麻豆在拍91精品| 欧美黄片在线播放视频| 日本在线不卡二区三区| 五月天亚洲综合小说网| 日本少妇熟女一区二区| 国产高清亚洲一区亚洲二区| 国产视频不卡一区二区| 日本在线免费高清观看| 蜜臀av成人精品蜜臀av| 久久综激情丁香开心婷婷| 黄色三级视频一区二区三区| 天堂久久天堂av色综合| 久久尤物av天堂日日综合| 国产高清av免费在线播放| 亚洲精品熟女国产中文| 国产精品一区二区毛卡片| 亚洲国产一区二区高清|