IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> vue 单元测试初学 -> 正文阅读

[开发测试]vue 单元测试初学

1 安装vue 选择单元测试启动项目

2 单元测试写在组件同级的配置,在jest.config.js 里

module.exports = {
  preset: "@vue/cli-plugin-unit-jest/presets/typescript-and-babel",


 // 添加以下
  testMatch: ["<rootDir>/src/**/*.spec.ts"],  // testMatch 是执行单元测试的路径
  testURL: "http://10.0.110.86/",    // 单元测试需要的服务
};

3 单元测试文件使用了 esling 规则,编辑器一直报警告,我选择 spec.ts. 文件去掉规则,根目录添加一下 .eslintignore 文件,里面写上不校验的文件

public
tests/unit/**/*.spec.ts
src/**/*.spec.ts

4 尝试写一波

? ?1? ? 注入全局插件;

? ?2? ?使用vuex

? ?3? ?props 传递参数与 data 声明

? ?4? ?html 元素操作

import { shallowMount, createLocalVue } from "@vue/test-utils";
import homeDataAnnular from "./home-data-annular.vue";
import ViewUI from "view-design";
import Vuex from "vuex";
import i18n from "@/config/i18n";

describe("homeDataAnnular.vue", () => {
  const localVue = createLocalVue();
  localVue.use(ViewUI);  // 注入 iview
  localVue.use(Vuex);   // 注入 vuex
  const wrapper = shallowMount(homeDataAnnular, {
    propsData: {
      oprPkId: "0127", // 传递参数
      title: '标题'
    },
    localVue,
    mocks: {
      $store: { 
        state: {  // vuex 需要用的的参数  state
          sys: {
            winOnresize: false,
          },
        },
      },
      $t: (a:any,b:any) => i18n.t(a,b), // 注入 i18n, 这里处理国际化:解决报错 _t 没有定义
    },
  });

  let vm: any = wrapper.vm; // 获取组件的 this
  describe("检测声明", () => {
    it("检测声明:data", () => {
        // 检测变量是否声明,我也不知道有什么意义,公司要这么写
      expect(vm.isActivated).toBeDefined();   
      expect(vm.boxTitle).toBeDefined();
      expect(vm.chargeEchart).toBeDefined();
      expect(vm.myChart).toBeDefined();
      expect(vm.win).toBeDefined();
      expect(vm.echartData).toBeDefined();
    });
  });
   describe("检测是否显示", () => {
    it("标题检测是否显示", () => {
      const title = "测试标题";
      expect(wrapper.find(".home-data-block-title").text()).toMatch(title);
    });
  });
    describe("检测操作事件", () => {
      it("检测事件:selectChange", () => {
        const num = 2;
        const ele = wrapper.find(".select-btn")  // 获取元素
        ele.trigger('click',{eventParams: num})   // 传递参数
        expect(ele.classes()).toContain('active'); // 看是否添加了 class
      })
    })
});

?@/config/i18n 文件

import Vue from "vue";
import VueI18n from "vue-i18n";
import zh from "view-design/dist/locale/zh-CN";
import en from "view-design/dist/locale/en-US";
import cn from "../language/zh-CN";
import us from "../language/en-US";

const messages = {
  zh: Object.assign(cn, zh),
  en: Object.assign(us, en),
};
Vue.use(VueI18n);
const i18n = new VueI18n({
  locale: localStorage.getItem("language") || "zh",
  messages, // set locale messages
});

export default i18n;

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 15:54:49  更:2022-03-04 15:55:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:35:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码